Skip to main content
Glama
leancoderkavy

Premiere Pro MCP Server

MCP for Adobe Premiere Pro — local MCP server

Languages: English · Español · Português (Brasil) · Français · Deutsch · 简体中文 · 繁體中文 · 日本語 · 한국어 · Русский · العربية · हिन्दी · Italiano · Türkçe · Bahasa Indonesia

MCP Toplist

Adobe Premiere Pro MCP server for reviewable, local-first workflows with compatible AI assistants.

Premiere Pro automation for Claude, Cursor, Codex, and other MCP clients: AI-assisted editing, project organization, and export checks through Adobe's documented UXP and CEP/ExtendScript APIs.

Free, MIT licensed, local-first, and published to npm as premiere-pro-mcp — the only package name that installs this project.

Website · Recorded demo · Compare servers · Setup guides · Search tools · Troubleshooting · Release facts

Development source: 441 core tools across 67 modules, 4 resources, and 29 guided workflows. A connected UXP host adds 96 capability-gated tools.

The completed AE render handoff previews and confirms importing one finished render into an existing Premiere bin, with host and file rechecks and an import receipt.

License: MIT Node.js MCP npm Website Premiere Pro

npm downloads GitHub stars GitHub forks Open issues Last commit Buy Me A Coffee


MCP for Adobe Premiere Pro turns a structured AI request into an organized local editing workflow

What is this?

MCP for Adobe Premiere Pro is the independent, MIT-licensed local MCP server published as premiere-pro-mcp by leancoderkavy/premiere-pro-mcp. Install this package and its separate Premiere connector to connect a compatible AI assistant to supported project inspection, timeline editing, and export tools. Start with verify_premiere_connection and make no changes until the bridge works.

Find the right Adobe Premiere Pro MCP guide

Goal

Guide

Understand the local server and connector

What is Adobe Premiere Pro MCP?

Connect Claude Desktop, Cursor, or Codex

Claude Desktop · Cursor · Codex

Choose between similarly named projects

Source-linked server comparison

Match a repeatable task to a tool and verification step

Adobe Premiere Pro automation guide

Check a tool before planning an edit

Published tool catalog

Confirm released version and provenance

Published package facts

An MCP (Model Context Protocol) server that lets AI assistants like Claude, Windsurf, Cursor, GitHub Copilot, or any MCP-compatible client directly control Adobe Premiere Pro — importing media, editing timelines, applying effects, managing keyframes, exporting, and more.

"Add the B-roll clips to V2, apply a cross dissolve between each, color correct them to match the A-roll, and export a 1080p ProRes."

At a glance

Display name

MCP for Adobe Premiere Pro

npm package

premiere-pro-mcp

Install (npm route)

npm install -g premiere-pro-mcp

Connector install

premiere-pro-mcp --install-cep

MCP server name

io.github.leancoderkavy/premiere-pro

Repository

https://github.com/leancoderkavy/premiere-pro-mcp

Website

https://premiere-pro-mcp.com

License

MIT

Hosts

Windows and macOS, Premiere Pro 2020-2026

This project is independent and is not affiliated with or endorsed by Adobe Inc. It is also separate from other MCP servers for Premiere Pro. The only npm package published from this repository is premiere-pro-mcp, and no other package name installs it.

Comparing similarly named packages? Both this package and adobe-premiere-pro-mcp declare a premiere-pro-mcp executable. Verify the package and repository before configuring a client. The new local configuration helper prints Claude, Cursor, VS Code, or Codex settings that point directly to this installation. It is a feature included in v1.15.1 and later.

The current source exposes 441 core tools for supported workflow steps spanning the supported ExtendScript, QE DOM, local media and interchange analysis, revisioned project-context retrieval, safe edit-planning, project-intake preview, review handoff, connection verification, and guarded After Effects MOGRT authoring, batch, library, render-queue, inspection, and Premiere-handoff workflows. A compatible, authenticated UXP panel adds 96 documented, capability-gated tools without replacing the production CEP bridge.

Latest release: 1.25.0

The published v1.25.0 npm artifact contains 441 core tools, 439 in its default profile, and 535 with a compatible UXP connection. The development catalog above can include unreleased work. See the versioned facts and package provenance.

GitHub releases use v<SemVer> for both title and tag, such as v1.25.0. See release naming and version conventions.

Try a bounded workflow

Choose a setup guide: Claude Desktop, Codex, other local MCP clients, or ChatGPT connection options.

Download the workflow starter kit for synthetic media and three evaluation recipes: a read-only sequence check, an explicitly confirmed review-frame export, and a product-spot preview. No email is required. The kit has no recorded Premiere demo or verified host result. Start with a disposable project and use setup and recovery if the connection is unavailable.

Release highlights

  • 1.24.0 mark-write fixes: temporary overwrite marks and restored project-item marks are written a quarter media frame past the tick boundary, so Premiere 26.5.2 no longer floors them one frame early in unnest_sequence, replace_clip and duplicate_clip.

  • 1.24.0 caption style guidance: get_caption_style_guidance accepts a bounded custom_style and returns Properties panel and Track Style steps; it is guidance only and applies nothing.

  • 1.23.0 bounded workflows: 41 added core tools and five guided routes cover exact timeline planning, editorial review, interchange/turnover and guarded delivery. The 52-item implementation ledger records each supported subset and host limit.

  • 1.23.0 execution and recovery: cooperating processes serialize protected edits, retain recovery for uncertain outcomes and report cancellation/partial work explicitly. UXP writes require the matching updated panel; older unversioned panels remain read-only.

  • 1.23.0 artifact evidence: review and delivery checks pin source checksums, inspect actual decoded frames/audio and preserve unknown native-job completion. Local decoder checks do not establish Premiere playback or native round-trip compatibility.

  • 1.23.0 import fixes: folder imports verify actual project-item readback; caption imports validate formats and counts and preserve mutation readback. Export preset discovery avoids proxy ingest presets, and unnesting refuses mixed-media overwrite hazards.

  • 1.22.0 readback receipts: effect writes, stabilization, smart bins, proxies, folder imports, sequence creation, marker deletion and clip selection report what Premiere applied as verified, committed_unverified or failed; create_subclip, add_title and update_marker report the stored values; set_sequence_frame_rate lists clips Premiere re-snapped.

  • 1.22.0 display codes and proxies: set_sequence_display_format writes Premiere's real display codes (video 100-113, audio 200-201) and maps the older 0-11 and 0-1 inputs onto them; manage_proxies toggle can set a known proxy display state; the Windows ACL check waits up to 30 seconds for PowerShell.

  • 1.21.0 Claude Desktop startup fix: the extension starts when optional settings are blank, and Desktop's discover-only probe no longer holds the UXP port, so the real server keeps its UXP tools.

  • 1.21.0 frame-grid verification: project-item marks, sequence In/Out, work area, link/unlink, zero point, transitions, replace_clip and duplicate_clip verify against Premiere's own frame and sample grids and fail closed; UXP tools snap times to the sequence frame grid.

  • 1.20.0 verified range removal: ripple_remove_timeline_ranges previews, then applies a multi-range ripple removal with a single-use confirmation token and clip-level readback (QE razor; experimental).

  • 1.20.0 effect safety: effect colours read and write losslessly, ambiguous property names (for example repeated Lumetri controls) are refused unless property_index is given, and duplicate_clip copies keep the original length.

  • 1.20.0 import and metadata additions: import_fcp_xml can import into the open project, import_folder accepts target_bin, get_encoder_presets pages with limit/offset, set_footage_interpretation sets field_type, and XML/AAF/EDL imports through import_media no longer report a false error.

  • 1.19.1 timeline fixes: bounded sequence pages with continuation, measured unlinked-clip compatibility, and faster ripple movement with a large-edit opt-in and scaled host waits.

  • 1.19.1 safer handoffs: AME queue-wide start requires explicit opt-in, malformed MOGRT files refuse before host import, and uncertain committed edits retain inspection guidance.

  • 1.19.1 transcript and capture fixes: empty host-attached transcripts can accept guarded imports; stored values and still files do not establish temporal animation. A short actual video export is needed to assess keyframe curves.

  • Editorial planning: film evidence, transcript cleanup, caption authoring, shorts and chapter planning, rhythm and speaker layouts, timeline QA, and platform delivery plans.

  • Cross-app handoff: capability-aware workflow routes and guarded After Effects render-to-Premiere handoff.

  • Editing correctness: verified readback and explicit capability or committed-but-unverified failures across transition, import, effects, source identity, and track operations. Insert edits ripple QE sync-locked tracks instead of silently desyncing neighbours.

  • MOGRT studio: an optional, separate After Effects CEP connector can author approval-gated title, callout, quote, and social recipes; constrain them with local brand kits; batch, publish, queue, inspect, and hand them to Premiere without claiming visual or completed-render proof.

  • Global-update handoff: a global npm installation can show its server and connector update state in the Windows CEP panel and, after explicit confirmation, update only after Premiere has been quit; it never changes a project, client configuration, source checkout, or custom npm prefix.

  • Local review planning: caption timing previews parse caller-supplied SRT/VTT without writing or importing it, while revision-bound editorial evidence stays in the opt-in local context index without provider calls.

  • Repair preview: premiere-pro-mcp --doctor --plan-fixes produces a privacy-safe, no-write repair plan; the narrowly eligible connector repair still requires an explicit confirmation that Premiere is closed.

  • Auditable guidance: the universal setup guide, generated public workflow manifest, and proof runbook make workflow and verification boundaries inspectable without claiming a licensed-host walkthrough occurred.

  • Faster, clearer delivery: immutable MCP registration work is reused safely across stateless requests, and the website gained a lighter, mobile-first workflow view plus current machine-readable facts and crawl guidance for its public pages.

  • Explicit boundary: the hosted endpoint remains an operator-managed MCP service; unauthenticated callers are rejected and it does not pair users to local Premiere processes. See the generated supported action catalog for individual capability and verification contracts.

See the v1.25.0 release notes for complete details. Live installation in Premiere Pro still requires host verification.

Current MCP protocol support

The server uses the stable TypeScript SDK v2 and serves the 2026-07-28 stateless protocol over HTTP and stdio, while retaining legacy MCP compatibility through 2025-11-25. Modern clients receive discovery, validated routing headers, cache hints, subscription-stream support, and the formal Premiere extension capability. See the complete MCP capability and boundary report.

If an MCP client cannot complete its server/discover probe, set PREMIERE_MCP_PROTOCOL_MODE=legacy in that client's server environment and restart the client. This uses the SDK's base stdio transport and the legacy initialization handshake only; leave it unset (or auto) for modern MCP capabilities.


Guarding multi-project CEP sessions

Every registered tool accepts optional expected_project_path, an absolute path to the intended saved Premiere project. Generated CEP scripts compare the active project's host-normalized file path before the tool body; a different, missing or unsaved project refuses without running that body. The guard is scoped to the request and checked for every generated command in a multi-command tool. Omitting it preserves existing behavior.

{"name":"get_project_info","arguments":{"expected_project_path":"/Projects/Film.prproj"}}

This protects against accidental active-project switches, not deliberate project switching inside unsafe scripts. It does not select a project or prove media identity. Paths remain in request context and are not telemetry. UXP and After Effects commands refuse this CEP-only guard; UXP workflows use their expected_snapshot identity contracts. Local-only tools do not inspect Premiere. Filesystem aliases are not resolved as a claim of project identity.

Related MCP server: cut.skill

For editors evaluating an AI workflow

Before an assistant changes an active project, use the Premiere Pro AI workflow checklist to define the target and no-change boundaries, verify the local connection, request a bounded plan, and inspect the returned result. It is a practical starting point for assistant editors and post leads testing a repeatable workflow on a duplicate project or small test sequence.

For product context, see the Adobe Premiere AI Assistant and MCP comparison and the Claude Desktop setup guide.

If you are deciding between a single local project, an Adobe Production on shared storage, or a remote Team Project, use the Premiere Pro collaboration workflow guide before you evaluate an MCP path. It links the relevant Adobe guidance, makes no project inspection request, and ends with the same read-only connection check.

For a concrete first Project Intake preview, choose one of the three schema-checked, no-sensitive-data starter templates. They are evaluation samples only: a human policy owner must review and replace their bins, media rules, and organization rules before a facility uses one.


Quick Start

Install the published package (verify the name)

npm i -g premiere-pro-mcp@1.25.0

This repository publishes only premiere-pro-mcp. A differently named package (adobe-premiere-pro-mcp) may also declare a premiere-pro-mcp executable. Before configuring a client, confirm:

Check

Expected

Package name

premiere-pro-mcp (not adobe-premiere-pro-mcp)

Version

1.25.0

Homepage / repo

https://premiere-pro-mcp.com/ · https://github.com/leancoderkavy/premiere-pro-mcp

npm list -g premiere-pro-mcp
premiere-pro-mcp --version
npm view premiere-pro-mcp homepage repository.url

Then continue with --install-cep, --doctor, and the read-only verify_premiere_connection prompt.

Easiest supported path: Claude Desktop

  1. Download the current Claude Desktop bundle (.mcpb).

  2. In Claude Desktop, open Settings > Extensions > Advanced settings > Install Extension, select the downloaded bundle, and restart Claude Desktop.

  3. Download the separate signed Premiere connector (.zxp). Open it with your trusted ZXP installer. If your computer has no ZXP installer, use the npm connector installer in Advanced setup below.

  4. Restart Premiere, open a project, then open Window > Extensions > MCP for Adobe Premiere Pro.

  5. In Claude, enter: Safely check my Premiere connection with verify_premiere_connection. Make no changes.

The Claude bundle contains the local MCP server, so this route does not require Node.js. The Premiere connector is a separate required install. The first prompt is read-only and reports whether the server is installed, configured, connected, and live-verified.

First proof, before the first edit

Illustrated local Premiere MCP workflow

This is an illustrated workflow, not a Premiere panel screenshot or licensed-host proof.

  1. Open a copied test project and an active sequence in Premiere.

  2. Open Window > Extensions > MCP for Adobe Premiere Pro. “Running” means the local panel bridge is available; it does not show that an edit completed.

  3. Run premiere-pro-mcp --doctor to check only local package/configuration readiness.

  4. Ask the AI client: Run verify_premiere_connection. Make no changes. The returned check is read-only and avoids project names, paths, and media details.

If a bridge, project, or active sequence is missing, fix that setup state before allowing a mutation. For a concise, translatable version of this path, see quick starts in English, Spanish, and Japanese. The translations are machine-assisted drafts and retain command names in English.

Other AI assistants

Cursor, VS Code/Copilot, Windsurf, and other MCP clients do not currently have a project-provided one-click installer. Use their MCP settings with the advanced npm route below. Keep the assistant, server, connector, and Premiere on the same computer.

For a portable reference users can download and attach to any AI assistant, see the MCP for Adobe Premiere Pro setup guide for AI assistants. Attaching the guide provides assistant context; the local server and Premiere connector still need to be installed separately.

Before you begin

  • Node.js 20.19 or newer on Windows or macOS.

  • Adobe Premiere Pro 2020–2026. Keep Premiere, the CEP bridge, and your MCP client on the same computer for the recommended local setup.

  • For trim_clip and slip_edit, install FFmpeg with ffprobe on PATH (brew install ffmpeg on macOS or winget install Gyan.FFmpeg on Windows). These source-range edits are unavailable without ffprobe and accessible media with readable timestamp clocks: they refuse before mutation when physical source bounds cannot be verified. FFmpeg also provides the optional detect_silence dependency. The production Docker image already includes it.

1. Install

Option A — npm:

npm install -g premiere-pro-mcp

Option B — Clone from source:

git clone https://github.com/leancoderkavy/premiere-pro-mcp.git
cd premiere-pro-mcp
npm install
npm run build

2. Install the CEP plugin

If installed via npm:

premiere-pro-mcp --install-cep

If cloned from source:

npm run install-cep

This installs the plugin into Premiere Pro's per-user extensions folder and enables debug mode.

3. Check the setup

premiere-pro-mcp --doctor

Then ask your MCP client to run verify_premiere_connection. The check is read-only.

Update an existing installation

New releases update the local server and Premiere connector; a deployment of the hosted MCP service does not replace software on your computer. Fully quit Premiere before updating the connector.

Installed globally from npm:

premiere-pro-mcp --check-update
premiere-pro-mcp --update

--update only changes a global npm installation. It installs the published latest package, refreshes the bundled CEP connector, and leaves your MCP client configuration and projects untouched. Restart Premiere and your MCP client afterward, then run verify_premiere_connection before editing.

From the MCP for Adobe Premiere Pro panel (Windows global npm install):

The MCP updates card compares the installed global server and connector with npm latest. Choose Update after quit, review the confirmation, then quit Premiere normally. A per-user helper waits for Premiere to exit; it never force-quits the app, then installs the published npm package and refreshes its matching connector. This also supports older global installs that predate the --update command. When you reopen Premiere, the panel reports the result and reminds you to restart your MCP client and verify the connection. This flow never changes a project or MCP client configuration. It deliberately will not update a Git checkout, a custom npm prefix, or a Claude Desktop .mcpb bundle.

Installed from a Git clone:

npm run check-update:source
npm run update:source

The source updater refuses a checkout with uncommitted files or local commits, fast-forwards only to its configured upstream, runs npm ci and the production build, then refreshes the CEP connector. This avoids silently overwriting local code. If you installed the Claude Desktop .mcpb bundle, download and install the newer bundle from the GitHub release instead; Claude controls extension updates.

Remove the CEP connector

Fully quit Premiere, then remove only this connector:

premiere-pro-mcp --uninstall-cep

The uninstaller intentionally leaves Adobe's shared PlayerDebugMode setting in place so it does not disrupt other CEP extensions. Remove the MCP server from your AI client's configuration and uninstall the npm package separately if you no longer use it. On macOS, --uninstall-cep removes the per-user npm/source install; the signed system-wide .pkg route has a separate privileged removal command in distribution readiness.


Publishing to npm

The easiest repeatable path is the token-free GitHub Actions workflow:

  1. In the npm package settings, configure GitHub Actions as the trusted publisher for leancoderkavy/premiere-pro-mcp and workflow file npm-publish.yml.

  2. Allow the npm publish action.

  3. Open Actions -> Publish npm -> Run workflow and keep the default latest tag.

The workflow installs dependencies, builds, runs tests, verifies the packed files, refuses to republish an existing version, then publishes through short-lived OIDC credentials with automatic provenance. No npm token or recurring OTP is required.

For local publishing, use the guided helper:

npm run publish:npm

Useful local variants:

npm run publish:npm:dry-run
NPM_OTP=123456 npm run publish:npm
NPM_TOKEN=npm_xxx npm run publish:npm
mkdir -p ~/Library/Application\ Support/Adobe/CEP/extensions
ln -s "$(pwd)/cep-plugin" ~/Library/Application\ Support/Adobe/CEP/extensions/MCPBridgeCEP

# Enable unsigned extensions (CSXS 9–14)
for v in 9 10 11 12 13 14; do
  defaults write com.adobe.CSXS.$v PlayerDebugMode 1
done
  1. Copy the cep-plugin folder to %APPDATA%\Adobe\CEP\extensions\MCPBridgeCEP

  2. Open Registry Editor and set these String (REG_SZ) values to 1 (not DWORD):

    • HKEY_CURRENT_USER\Software\Adobe\CSXS.12\PlayerDebugMode

    • (repeat for CSXS.9 through CSXS.14)

3. Configure your MCP client

If you installed from npm, configure the client to run the global command:

{
  "mcpServers": {
    "premiere-pro": {
      "command": "premiere-pro-mcp"
    }
  }
}

If you cloned the repository instead, use the source-build configuration shown below for your client.

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "premiere-pro": {
      "command": "node",
      "args": ["/absolute/path/to/premiere-pro-mcp/dist/index.js"]
    }
  }
}

Add to your MCP server configuration:

{
  "premiere-pro": {
    "command": "node",
    "args": ["/absolute/path/to/premiere-pro-mcp/dist/index.js"]
  }
}

Add to .cursor/mcp.json in your project or global config:

{
  "mcpServers": {
    "premiere-pro": {
      "command": "node",
      "args": ["/absolute/path/to/premiere-pro-mcp/dist/index.js"]
    }
  }
}

After the server is enabled, select Claude Fable 5.1 in Cursor when you want a longer-horizon session. See Claude Fable 5.1 workflows.

Add to your VS Code MCP server configuration:

{
  "mcpServers": {
    "premiere-pro": {
      "command": "node",
      "args": ["/absolute/path/to/premiere-pro-mcp/dist/index.js"]
    }
  }
}

4. Verify the bridge in Premiere Pro

  1. Open (or restart) Premiere Pro

  2. The bridge starts automatically using the default temp directory (or its previously saved setting)

  3. Optionally go to Window > Extensions > MCP for Adobe Premiere Pro to confirm the green "Running" status or change the Temp Directory to match your MCP client config

  4. Ask your AI assistant to run get_capabilities, then ping, with Premiere open.

  5. For a safe first request, ask: "What is my current Premiere Pro project and active sequence? Do not make changes."

The default bridge directory is derived from the operating system on both sides, so most local setups should not set PREMIERE_TEMP_DIR. On macOS, the server resolves the per-user system temporary directory even when a GUI-launched client strips TMPDIR, keeping it aligned with Premiere's CEP panel. If you override it, use the same absolute path in the MCP server and CEP panel; Windows and macOS paths are not interchangeable.

Codex plugin

This repository includes an installable Codex plugin that bundles the local MCP server with a safety-oriented Premiere editing skill.

From a clone of this repository:

codex plugin marketplace add .
codex plugin add premiere-pro@premiere-pro-mcp
npx -y premiere-pro-mcp@1.25.0 --install-cep

Restart Premiere Pro and start a new Codex session after installation. The plugin launches premiere-pro-mcp@1.25.0 through npx; the separate CEP installation is required because the MCP server communicates with the running Premiere host through the local bridge.

The plugin source lives in plugins/premiere-pro, and the repository marketplace manifest lives in .agents/plugins/marketplace.json.

GPT-6 Astra and agent tool discovery

Use the Codex plugin with codex --model gpt-6-astra when your account has access. The server supplies session-aware workflow instructions and bounded tool discovery: call get_capabilities with {"tool_query":"transcript","tool_limit":10} to find relevant operations, their descriptions, and backend requirements. Searches default to tools registered under the current authority and tool packs.

See GPT-6 Astra workflows for evidence retrieval, visual review, execution ordering, and the division between MCP and client capabilities.

GPT-6 Sol and GPT-6 Luna

Use the Codex plugin with codex --model gpt-6-sol for multi-step agentic edits, or codex --model gpt-6-luna for focused, high-volume inspection passes, when your account has access. Both call the same MCP tools under the same authority, preview, and readback rules. See GPT-6 Sol and Luna workflows.

Claude

For Claude Code, add this repository as a marketplace and install the plugin:

/plugin marketplace add leancoderkavy/premiere-pro-mcp
/plugin install premiere-pro@premiere-pro-mcp

Then install the Premiere bridge and start a new Claude Code session:

npx -y premiere-pro-mcp@1.25.0 --install-cep

The Claude Code package lives in claude-plugins/premiere-pro, with its marketplace at .claude-plugin/marketplace.json.

Claude Desktop uses the self-contained MCP Bundle (.mcpb) format. Build and validate the current bundle with:

npm run build:claude

Install the resulting file from artifacts/ through Settings > Extensions > Advanced settings > Install Extension. The Premiere CEP bridge must still be installed separately.

Claude Fable 5.1

Use Cursor, Claude Desktop, or Claude Code with Claude Fable 5.1 (claude-fable-5-1) when your account has access. Model selection belongs to the client; this server does not run an Anthropic model. Fable 5.1 is optional: other Claude models can call the same MCP tools. If Cursor Privacy Mode or an Enterprise plan is enabled, an admin must approve Anthropic's Fable data-retention policy before the model is available.

The server supplies session-aware workflow instructions and bounded tool discovery: call get_capabilities with {"tool_query":"transcript","tool_limit":10} to find relevant operations, their descriptions, and backend requirements. Keep Premiere mutations serialized even in a long Fable 5.1 session. Image review of returned frames is not playback or delivery proof.

See Claude Fable 5.1 workflows for connection order, privacy boundaries, evidence retrieval, Cursor's Opus fallback, and the division between MCP and client capabilities. The public walkthrough is How to Use Claude Fable 5.1 with MCP for Adobe Premiere Pro.

Claude Opus 5.5

Use Claude Code, Claude Desktop, or Cursor with Claude Opus 5.5 (claude-opus-5-5) when your account has access. Model selection belongs to the client; this server does not run an Anthropic model. Opus 5.5 is optional. Keep Premiere mutations serialized and preview before apply. See Claude Opus 5.5 workflows.

Windows and macOS capability coverage

Surface

Windows

macOS

Verification boundary

CEP production bridge

Premiere Pro 2020–2026

Premiere Pro 2020–2026

Run get_capabilities, then ping with Premiere open

UXP preview bridge

Premiere Pro 25.6+

Premiere Pro 25.6+

Live loopback WebSocket and host API verification required

npm CEP installer

Copies plugin and verifies REG_SZ debug keys

Copies plugin and verifies the installed manifest/debug settings

Restart Premiere after installation

AE MOGRT authoring CEP bridge

After Effects 2018+

After Effects 2018+

Opens only a saved, workspace-contained AE project; a local ZIP check is not import, playback, or visual verification

CI build and unit tests

Node 20, 22, and 24

Node 20, 22, and 24

GitHub-hosted OS runners; no Adobe host is available in CI

get_capabilities reports the current operating system, temp directory, CEP/UXP coverage, enabled authority profile, and any live-host verification still required. It also includes the full tools catalog generated from the tools registered by the server, including tools disabled by the active profile. Every entry identifies:

  • the execution backend (local, CEP/ExtendScript, QE, or orchestrator);

  • static support status (supported, limited, experimental, or unsupported);

  • the minimum Premiere version known to the server;

  • the required authority and whether the current profile enables it;

  • the verification boundary and whether a live Premiere host is required; and

  • relevant operational notes.

QE-backed tools are reported as experimental because QE is undocumented and can vary between Premiere builds. Authority availability is reported separately from implementation support, so disabling edit, for example, does not incorrectly label editing tools as unsupported. Static metadata never claims that a Premiere operation succeeded; use ping and inspect each tool result for runtime evidence.

MCP tools/list is filtered to the active authority profile. The default inspect,edit,export,filesystem profile advertises 367 of the 369 registered tools and omits execute_extendscript and evaluate_expression, which require explicit unsafe-script authority. ping and get_capabilities remain visible under every profile so a restricted or misconfigured server can still explain its state. The call-time capability guard remains authoritative even if listing metadata is wrong.

Workflow-scoped discovery packs and structured outputs

By default, the full permitted catalog remains available. Set PREMIERE_MCP_TOOL_PACKS to essential, inspection, delivery, captions, or a comma-separated combination such as inspection,captions to reduce the tool discovery and registered session surface for a focused client. full is the explicit full-catalog mode and cannot be combined with another pack. ping and get_capabilities remain listed for diagnosis, and every registered call still passes through the same capability guard; a pack never grants authority.

Every listed tool now declares the same machine-readable result envelope through MCP outputSchema: ok, tool, plus data on success or error on failure. The tool-specific data shape remains versioned by the individual tool result, so clients can reliably distinguish transport success from a Premiere or local operation failure without parsing the text block.

After Effects MOGRT studio

This is a narrow authoring path, not an arbitrary After Effects script runner. Install the separate local connector, fully restart After Effects, and open Window > Extensions > MCP for Adobe After Effects:

premiere-pro-mcp --install-after-effects-cep

Then open a saved .aep project inside an approved workspace and use this order:

  1. verify_after_effects_connection — read-only connector and saved-project check.

  2. preview_mogrt_recipe — produces an expiring, one-time plan for one of five supported recipes: lower_third, title_card, callout, quote_card, or social_end_card; it never creates directories or contacts Adobe.

  3. create_mogrt_recipe with that token and confirm_export: true — creates one composition, saves the open project, and requests one .mogrt export.

  4. verify_mogrt_artifact — checks only local file existence and its ZIP header.

Optional studio paths retain the same preview-and-confirm boundary:

  • validate_mogrt_brand_kit validates local name-prefix, accent/text colors, font request, safe-margin, and workspace-contained logo values before they are passed into a recipe.

  • preview_mogrt_batch / create_mogrt_batch export up to 20 JSON/CSV rows serially; batches stop on a host error and do not promise rollback.

  • preview_mogrt_library_publish / publish_mogrt_to_library write a new, immutable v001, v002, … copy under an already-existing local library.

  • inspect_after_effects_template_source returns source-comp dimensions, duration, fonts, layer kinds, and controller names on AE 16.1+, while inspect_after_effects_render_templates lists host template names from an existing queue item.

  • preview_after_effects_render / enqueue_after_effects_render queue one exact render but never start it. preview_mogrt_premiere_handoff / apply_mogrt_premiere_handoff import into an explicitly named empty MOGRT Verify - … Premiere sequence and read back insertion/control descriptors.

The authoring connector uses AFTER_EFFECTS_MCP_TEMP_DIR (default: the OS temp directory plus after-effects-mcp-bridge), completely separate from PREMIERE_TEMP_DIR. The tool will not create, replace, or switch projects; it requires the already-open AE project and output directory to be contained by the same approved workspace. An import/control readback still needs rendered-frame review before delivery; use capture_frame or a separate approved export path.

inspect_sequence_review_report creates one read-only handoff report from Premiere timeline readback: sequence structure, primary-track gaps, disabled clips, muted tracks, marker timing, and offline-source evidence. It never returns media paths; marker comments are omitted unless explicitly requested. The report is not proof of rendered pixels, audio quality, caption accuracy, rights, or editorial approval.

The MCP handshake reads serverInfo.version from the installed package.json, so clients receive the package version that is actually running rather than a separately maintained literal.

Tools with mixed execution boundaries can provide explicit operational metadata at registration. This is used for local file verification, static feature-support reports, and hybrid local-plus-Premiere validation so the capability catalog does not infer a host dependency from naming alone.

Collaboration and AI feature boundaries

get_advanced_feature_support returns a machine-readable matrix for Productions, Team Projects, Frame.io, Media Intelligence, Generative Extend, Object Mask, caption translation, Speech-to-Text, Enhance Speech, Remix, editorial plans, Premiere AI Assistant, Generative Media, and a future local semantic index. Each entry includes an explicit access mode: direct, observable-only, artifact-import, external-provider, user-assisted, unavailable, or planned. Pass an optional Premiere version, intended backend, confirmed entitlements, and network state to evaluate prerequisites without conflating them with API availability. It distinguishes documented APIs from entitlements, network prerequisites, separate service APIs, and user-assisted operations without using menu automation or private APIs.

The report tool itself is local: it does not contact Premiere and is callable through the current MCP server. Each feature entry separately reports whether its operations are callable through the production CEP transport. Productions reports only static backend/version eligibility until a UXP host performs live capability negotiation.

  • Productions exposes documented read-only state through UXP, but the production MCP transport is still CEP.

  • Frame.io needs a separately authenticated Frame.io API integration; an account entitlement alone does not make it callable through Premiere's DOM.

  • Transcript JSON import/export is documented in UXP. Starting Speech-to-Text is not.

  • preview_transcript_edit_uxp and plan_transcript_rough_cut_uxp provide a revision-locked transcript-edit workflow. The planner maps selected transcript ranges to verified 1x placements in a duplicate sequence and emits descending split/remove instructions; it does not claim that Adobe exposes native transcript text deletion or perform an unverified destructive edit.

  • The remaining AI operations are user-assisted or unsupported by documented public APIs. The tool explains what can be inspected after a user completes the operation and where artifact provenance cannot be established safely.

  • The server never uses menu automation, private APIs, clip-name heuristics, or duration changes as proof that an AI operation occurred.

Reusable project context

For projects where repeatedly inspecting clips, transcripts, audio, and timeline placements is expensive, call manage_project_context with action: "capture". The local context engine indexes a bounded active-sequence snapshot, hashes native project/media paths before persistence, and returns independent source, timeline, and combined context revisions. Add transcript passages, shot descriptions, audio observations, or editor notes once with action: "enrich"; ordinary trims and moves update the timeline revision without discarding unchanged source analysis.

Use search_project_context to retrieve only evidence relevant to the current editing intent. create_context_edit_plan returns a non-mutating candidate scaffold and stale-state guards; create_editorial_plan adds reviewed organization, stringout, rough-cut, and caption-artifact routes without calling an LLM or changing Premiere. Exact identities must still be resolved and passed through the routed operation's preview/confirmation flow before any application. See the project context engine guide for storage controls, privacy boundaries, and invalidation behavior; see local-first AI editorial workflows for the complete review-and-route workflow.

Authenticated UXP connection

The MCP server can accept a local UXP panel connection and invoke the UXP commands that are currently implemented:

PREMIERE_UXP_TOKEN="replace-with-a-long-random-secret" premiere-pro-mcp

Generate that secret yourself and enter the same value in the UXP panel (Window → UXP Plugins, not the CEP Connector). CEP-only setups do not use a token. The listener binds only to 127.0.0.1:7777, authenticates the WebSocket upgrade, requires a versioned capability handshake, correlates concurrent requests, and fails pending work on timeout or disconnect. Set PREMIERE_UXP_PORT to use another loopback port.

When enabled, MCP discovery includes 96 capability-gated UXP additions. The first expansion covers effects, deterministic timeline selection, selection batches, scene detection, proxy/ingest, relink, metadata, color conformance, read-only Premiere/After Effects environment inspection, Source Monitor audition, storage, and least-privilege workspace access. The second adds Project-panel selection, marker CRUD, single-transaction undoable beat-grid marker application, bin organization, sequence settings, imports, typed effect parameters/keyframes, track-item transforms, atomic J/L split edits, SequenceEditor timeline edits, sequence lifecycle, and AME encoding. The third wave begins with a redacted event journal, conservative AME terminal receipts, explicit host-readiness gates, safe multi-project sessions, lease-based growing-media control, namespaced workflow checkpoints, bounded media-health maintenance, caption-aware track mute state, transactional source trim/framing, guarded sequence-range updates, guarded source-media start timing, and guarded source-media frame-rate/pixel-aspect overrides documented in the third-wave workflow matrix. The bounded migration surface also includes a non-ripple selected-item lift, native video-transition listing and guarded transactions, native active and explicit-GUID sequence timing inspection, opt-in installed-MOGRT directory inspection without filesystem enumeration, bounded native timeline structure inspection with opt-in source IDs, classification, and broad content category, guarded sequence display-format updates, a capped native Project-panel tree, a double-read Project-panel insertion-bin snapshot, guarded empty/default sequence creation, bounded native Project-panel schema/item-column metadata inspection, guarded direct Project-panel metadata replacements with exact state/readback guards, guarded typed Project metadata schema-field creation with non-field-level readback, guarded direct updates to three named application preferences, guarded transcript JSON replacement for one exact source clip, direct active-track-item identity readback, guarded source-only slips, guarded contiguous three-item slides, guarded append-only timeline duplicates, guarded contiguous same-track ripple deletes, guarded source-project-item color labels resolved from one timeline coordinate, guarded explicit-sequence preview-frame rectangle updates, explicit opt-in source-media provenance paths with bounded double resolution, bounded source-proxy readiness with an explicit attached-path disclosure, guarded static effect-parameter PointF x/y updates, bounded effect-parameter descriptor catalogs, bounded project/sequence Object Mask audits, native FrameRate/TickTime frame-alignment inspection with caller-owned inputs and tick readback, and native TickTime arithmetic over caller-owned canonical tick strings; it does not claim direct empty-track create/delete, global redo support, playback proof, Object Mask counts or visual validity, an atomic Project-panel metadata compare-and-set, app-preference Undo, installed-template availability or compatibility, imported transcript persistence, override-presence/clear semantics, path existence, source lineage or rights, proxy compatibility, general or keyframed effect-parameter value readback, rendered-frame correctness, linked-item sync, or licensed-host validation. A separate hybrid benchmark gate keeps native acceleration disabled until reproducible cross-platform evidence exists. See also the first stable workflow matrix, the next-ten workflow matrix, the guarded-slip workflow notes, the guarded-slide workflow notes, the guarded-duplicate workflow notes, and the guarded-ripple-delete workflow notes. Commands are advertised only while the authenticated local UXP bridge is connected; the host capability handshake remains the authority for support in the running Premiere build. A failed UXP command is never silently retried through CEP because the first operation may have partially succeeded. UXP edits require a matching command-schema/receipt version, durable panel ledger storage and native cryptographic entropy; older unversioned panels remain read-only until the matching panel is installed.

The bounded UXP migration surface also exposes a read-only animated-PointF endpoint-displacement inspection through automate_effect_parameters_uxp. It requires one exact component and parameter target plus a strictly increasing time interval, double-reads native endpoint values and their distance, and refuses static, malformed, or changed parameter state. It does not modify Premiere or prove rendered appearance, playback, persistence, Undo, or licensed-host behavior.

The bounded UXP migration surface also exposes guarded static Color effect-parameter RGBA updates through automate_effect_parameters_uxp. They require a complete double-read snapshot, explicit confirmation, a valid operation ID, per-parameter serialization, one native transaction, and exact raw-component readback. They reject time-varying parameters and do not claim keyframed Color edits, color management, rendered appearance, playback, persistence, Undo, or licensed-host validation.

The bounded UXP migration surface also exposes guarded typed Project metadata schema-field creation. It requires the exact inspected active-project identity and 12 KiB-bounded panel XML, an explicit confirmation and operation ID, and serializes this bridge's schema and panel-replacement calls per project. Adobe provides no atomic compare-and-set or field-level schema getter: native acceptance and a changed panel XML are evidence only, so the command always returns committed_unverified and does not claim field presence, persistence, UI results, Undo, cancellation, or licensed-host validation.

The panel now requests access to one operator-selected workspace instead of declaring full filesystem access. Choose the folder in the panel before invoking a path-based UXP workflow. Media, relink, preset, export, and Source Monitor file paths must remain inside it; the persistent capability token and native root path are never returned over MCP. After a folder is granted, path-based commands resolve each native path through that folder's Entry tree and compare the host nativePath against the approved root, so symlink or junction targets outside the workspace still fail closed. If the host Entry cannot be walked and no resolver is supplied, those commands stay unsupported and the CEP fallback remains the path-based compatibility route.

Native transcript editing starts with a read-only, revision-locked planning flow. Use get_clip_transcript_uxp to export the transcript Premiere generated for a source clip, select source-time ranges from that JSON, and pass its SHA-256 revision to preview_transcript_edit_uxp. The preview sorts and merges ranges and returns a confirmation token without changing the timeline. Premiere does not expose a documented operation that directly turns deleted transcript text into timeline cuts, so automatic application remains withheld until the source-to-sequence mapping and documented reconstruction path pass live-host validation. search_clip_transcript_uxp provides read-only discovery without substituting an external transcription engine.

Premiere 26.2-26.3 hosts also expose documented UXP workflows for revisioned project inspection, verified project saves, preset-based sequence creation, OTIO/FCP XML interchange, transcript-language discovery, Object Mask detection, Adobe Media Encoder control, track renaming, subclip creation, stable marker inspection, Source Monitor positioning, and clip transcript detection. Mutations accept optional idempotency keys and return explicit verification outcomes. See the Adobe UXP 26.3 coverage matrix and the UXP capability foundation for the command matrix and live-host validation boundary.

The Premiere surface registry separately tracks the Premiere DOM, general UXP JavaScript, HTML/CSS, Spectrum, plugin guides, UXP Hybrid C++, the standalone Premiere C++ PrSDK, CEP/ExtendScript, the CEP platform, QE, and pinned competitor sources. The exhaustive general UXP JavaScript inventory is generated from Adobe's pinned declarations, while the exhaustive Premiere documentation inventory tracks every page in Adobe's live sitemap. This keeps declaration and documentation inventory distinct from implementation and licensed-host coverage.

The stable workflow expansion adds native component-chain effects, deterministic timeline selection, compound selection batches, scene-edit detection, proxy/ingest control, guarded offline relink, transactional project/XMP metadata, color and footage-conformance preflight, full Source Monitor audition, and project/Production storage checks. See the stable UXP workflow matrix for exact argument, undo, confirmation, and live-host boundaries.


Architecture

Local-first MCP for Adobe Premiere Pro workflow from AI assistant through the MCP bridge to a verified Premiere result

Local (stdio):

┌───────────────┐   stdio (MCP)    ┌──────────────┐   File-based IPC   ┌───────────────┐
│  AI Client    │ ◄──────────────► │  MCP Server  │ ◄────────────────► │  CEP Plugin   │
│  (Claude,     │                  │  (Node.js /  │   .jsx commands    │  (runs inside │
│   Windsurf,   │                  │  TypeScript) │   .json responses  │  Premiere)    │
│   Cursor,     │                  └──────────────┘                    └──────┬────────┘
│   Copilot)    │                                                             │
└───────────────┘                                                             │ evalScript()
                                                                              ▼
                                                                       ┌───────────────┐
                                                                       │  Premiere Pro │
                                                                       │  ExtendScript │
                                                                       │  + QE DOM     │
                                                                       └───────────────┘

Remote (HTTP/SSE — Fly.io):

┌───────────────┐  HTTP+SSE (MCP)  ┌─────────────────────┐   File-based IPC   ┌──────────────┐
│  AI Client    │ ◄──────────────► │  MCP Server         │ ◄────────────────► │  CEP Plugin  │
│  (any MCP     │                  │  premiere-pro-mcp   │   .jsx / .json     │  (Premiere)  │
│   client)     │                  │  .fly.dev           │   shared volume    └──────────────┘
└───────────────┘                  └─────────────────────┘
  1. AI client invokes an MCP tool (e.g., add_to_timeline)

  2. MCP server generates ES3-compatible ExtendScript with helper functions prepended

  3. Script is written to a .jsx command file in a shared temp directory

  4. CEP plugin polls for command files, executes via CSInterface.evalScript()

  5. Result JSON is written to a response file and returned to the AI

The file-based IPC bridge is simple, reliable, and works across macOS and Windows without network sockets.


inspect_unique_object_identity_uxp is a separate read-only native identity inspection route. It resolves exactly one project item or sequence, reads the opaque UniqueSerializeable identity twice, and rejects drift without retaining the value or treating it as edit authority. See the unique-identity workflow notes for its bounds and proof boundary.

Film editorial review

inspect_film_editorial_workflow validates captured identities and explicit source/scene coverage, builds marker/stringout/line/beat review artifacts, and reports revision-bound notes, VFX state, change impact and turnover exceptions. It performs local inspection; host edits and exports use separate guarded tools. See usage, example and remaining execution adapters.

Reviewed assistant-editing tools now provide dialogue candidate decisions, quote paper-edit CSV, batch copy previews, sync-evidence triage, and owned-footage B-roll review. These are local evidence reviews, not new host engines. See review workflow contracts.

See Filmcraft improvement ledger for exact-time planning, recovery, job observation, temporal evidence and facility workflows.

Tools (441 core total; 439 under the default profile; 535 with a connected UXP bridge)

The complete supported-actions catalog lists every registered core tool, the two tools restricted behind explicit unsafe-script authority, and all 96 authenticated UXP additions with their current action or mode values. It is generated from the same MCP registration surface returned to clients; the tables below are a shorter workflow-oriented overview.

Discovery & Inspection (10 + 10)

Tool

Description

get_project_info

Current project name, path, sequences, items

get_active_sequence

Detailed active sequence with all clips

list_project_items

All items in the project panel

get_full_project_overview

Comprehensive snapshot: bin tree, sequences, media types

get_full_sequence_info

Exhaustive sequence data: tracks, clips, effects, markers

get_full_clip_info

Everything about a clip: effects, keyframes, metadata

get_timeline_summary

Human-readable overview: duration, coverage %, effects

search_project_items

Filter by name, extension, offline status, color label

get_premiere_state

Full snapshot: project, sequence, playhead, selection

inspect_dom_object

Explore any Premiere Pro DOM object interactively

get_advanced_feature_support

Collaboration/AI API support, prerequisites, entitlements, and user-assisted boundaries

create_editorial_plan

Create a review-only local editorial plan from captured project context

preview_editorial_plan

Revalidate a local editorial plan and return a review receipt without changing Premiere

apply_editorial_organization_plan

Apply a confirmed organization plan through guarded UXP bin transactions only

Project Management (27)

Tool

Description

save_project / save_project_as / open_project

File operations

create_project / close_project

Project lifecycle

import_media / import_folder / import_ae_comps

Import media and AE comps

create_bin / delete_bin / rename_bin / create_smart_bin

Bin management

audit_project_structure

Audit Project-panel layout rules (allowed root names, extension-to-bin, sequences bin, depth, empty bins); optional apply with the audit's plan_token creates target bins and moves planned items with per-item parent readback. Never deletes or renames

import_sequences / import_fcp_xml

Import from other projects

create_bars_and_tone

Generate bars & tone media

set_scratch_disk_path

Configure scratch disks

consolidate_and_transfer

Project Manager consolidation

Timeline & Editing (11 + 27 advanced)

Tool

Description

add_to_timeline / overwrite_clip

Insert and overwrite edits

ripple_delete

Remove clip and close gap (QE)

roll_edit / slide_edit / slip_edit

Professional trim modes (QE)

move_clip_to_track

Move between tracks (QE)

reverse_clip / speed_change / set_clip_speed_qe

Unavailable: Premiere's documented ExtendScript and UXP APIs have no setter for a timeline clip's speed or direction; use set_clip_duration for timeline length

split_clip / trim_clip / move_clip

Basic edits; trim verifies source points and visible timeline edges

set_clip_duration

Set a clip's timeline duration or absolute end (extends still images); refuses next-clip overlaps and restores the original end if Premiere clamps

set_clip_properties

Opacity, scale, rotation, position (speed requests fail before mutation)

link_selection / unlink_selection

Link/unlink A/V

Premiere Pro 26.3 compatibility: some installations silently ignore QE structural edits (ripple_delete, razor/split) and existing effect-parameter writes. These tools now verify the resulting sequence state and return an error instead of a false success. For structural edits, rebuild the wanted source ranges into a new sequence with create_sequence and add_to_timeline. The legacy CEP transition path targets qeClip.addTransition (not the QE track) and reports success only after DOM transition-count readback. Prefer the connected UXP transition tools where available; overlay clips remain a workaround when a legacy QE write is rejected or not verified. See issue #21.

Speed, caption, and visual-keyframe boundaries: Premiere Pro 26.3 may reflect legacy QE speed/direction methods, but exposes no supported scripting setter or Time Remapping component for timeline-clip speed or direction (documented UXP through 26.3 has only getSpeed / isSpeedReversed). reverse_clip, speed_change, set_clip_speed_qe, and set_clip_properties with speed now stop before host mutation; use set_clip_duration to change timeline length, or the Speed/Duration UI or pre-rendered media to retime. add_text_overlay likewise stops before mutation because a raw-text-to-caption API is not exposed; import an .srt/.vtt and use create_caption_track, or use a MOGRT/PNG overlay. Keyframe and caption-track responses can prove parameter/structure readback only—not rendered pixels—so verify playback or exported frames before delivery. On macOS, AME preset discovery scans each installed app bundle's Contents/MediaIO/systempresets; prefer a Match Source preset for vertical projects.

Host limits: The capability ledger distinguishes unavailable APIs, unverified host requests, and property/structure readback. A verified parameter or component does not establish rendered appearance.

Verified track edits: add_track and add_tracks validate requested counts and return success only when the active sequence's track counts exactly match the request. overwrite_clip validates both selected track indices and confirms the requested source item appears at the requested frame on a target track. On a Premiere 26.x build that ignores any of these calls, the MCP response is an error with the observed state rather than a false success. These are automated CEP contracts, not proof of a particular licensed host configuration.

trim_clip accepts exactly one source-relative new_in_seconds or new_out_seconds per call. It refuses retimed clips because CEP cannot prove their source-to-timeline mapping, then reads both source points and visible timeline start/end/duration before reporting success. The default keyframe_policy: "reject" stops before a trim that would leave effect keyframes beyond the visible clip; keyframe_policy: "preserve" is an explicit opt-in and reports the remaining count. keyframe_policy: "hold_last_value" also keeps them, and makes each animated numeric parameter hold its edge value: a trim into an animation keys the new edge with the value sampled there, and an extension past hidden keys anchors the old and new edge at the old edge value. It refuses before mutation when keys would be revealed or a value cannot be sampled or written losslessly, and reads every value back at the new edge (committed_unverified if one differs). Only edge values are verified; a Bezier segment next to an added key can reshape between keys. split_clip verifies a spanning clip, the expected count increase, and the left/right cut boundaries. Its QE path cannot prove effect-keyframe redistribution, so a successful result labels those semantics unverified. These are CEP contract checks, not validation in a licensed Premiere Pro 26.x host.

set_clip_duration changes a placed clip's timeline length without touching source in/out directly: pass exactly one of duration_seconds (from the current start) or end_seconds (absolute timeline end). It writes the documented TrackItem.end as a tick-based Time, refuses an end that would overlap the next clip on the same track, applies the same keyframe_policy guard as trim_clip when shortening, and reads start/end back. If Premiere clamps the end (for example, video media with no remaining handle, or a still whose project item has in/out points), the original end is restored and the tool returns an error. Linked audio/video partners are not adjusted. This is a CEP contract check, not validation in a licensed Premiere Pro host.

Effects & Color (8)

Tool

Description

apply_effect / apply_audio_effect

Apply by name (QE)

remove_effect / remove_all_effects

Remove effects

color_correct

Lumetri: exposure, contrast, temperature, etc.

apply_lut

Apply LUT files

stabilize_clip

Warp Stabilizer with configurable settings

Premiere 26.x component removal: remove_effect and remove_effect_by_name require the CEP Component.remove() method. Some 26.x components, including Essential Sound's Amplify, do not expose that method. The tools return an actionable capability error and leave the component unchanged; use Effect Controls to remove it manually. The QE DOM has no safe targeted-removal fallback.

Essential Sound audio automation: Essential Sound can write ducking or level automation to an Amplify component rather than the clip's Volume > Level. adjust_audio_levels, set_clip_volume, and get_clip_volume operate only on Volume > Level, so they do not read, change, or verify Amplify automation. Inspect the clip's components (or Effect Controls) before treating a Volume readback as the clip's final gain.

Keyframes (8)

Tool

Description

add_keyframe / get_keyframes

Create and read keyframes

remove_keyframe / remove_keyframe_range

Delete keyframes

set_keyframe_interpolation

Linear / Hold / Bezier

get_value_at_time

Query interpolated value at any time

set_color_value

Set color properties on effects

Export & Encoding (19)

Tool

Description

export_sequence

Export via Adobe Media Encoder

export_sequence_job_start / get_export_job_status

Asynchronous AME export job for long renders: returns a job id at once, then reports queued, encoding, completed, or failed with event and output-file evidence

validate_export_preset

Validate an .epr file and resolve its output extension in Premiere

verify_delivery_file

Verify output size and calculate SHA-256/SHA-512 checksums

capture_frame

Export frame as PNG, return as base64 image

export_as_fcp_xml / export_aaf / export_omf

Interchange formats

export_sequence_edl

CMX 3600 EDL for one track, generated from timeline readback and self-validated (cuts, reels, drop/non-drop timecode, M2 lines for retimed clips)

encode_project_item / encode_file

Direct encoding

start_batch_encode

Start render queue

Documented Premiere UXP exposes format-specific OTIO import/export through runtime-probed export_interchange_uxp and import_interchange_uxp. CEP has no documented native OTIO route. Native EDL, Render and Replace, cloud publishing and Content Credentials export configuration remain unavailable through the supported automation contracts. export_sequence_edl therefore builds the CMX 3600 list locally from the clips Premiere reads back and validates it with the same parser used by inspect_cmx3600_edl; it is not a Premiere-native export. get_capabilities reports the remaining delivery gaps explicitly rather than presenting UI-only operations as available tools.

Source Monitor & Playback (7 + 4)

Tool

Description

open_in_source / close_source_monitor

Source monitor control

insert_from_source / overwrite_from_source

3-point editing

play_timeline / stop_playback

Playback control (QE)

play_source_monitor

Play in source monitor

Selection & Clipboard (7 + 7)

Tool

Description

select_clips_by_name / select_clips_in_range

Smart selection

copy_effects_between_clips

Copy effects via QE

paste_clip_attributes

Paste Attributes: effect stack, values, and keyframes with per-property readback; masks and differing Blend Mode are reported, not copied

batch_apply_effect

Apply effect to multiple clips

set_blend_mode

27 blend modes

Media Properties (16)

Tool

Description

set_offline / has_proxy / detach_proxy

Offline/proxy management

set_override_frame_rate

Override FPS

set_scale_to_frame_size

Auto-scale to sequence frame

get_xmp_metadata / set_xmp_metadata

Raw XMP access; writes merge a well-formed patch without removing unrelated fields

get_color_space

Color space info

Sequence Management (11)

Tool

Description

create_sequence / create_sequence_from_preset

Create sequences from .sqpreset files without opening Premiere's modal dialog

duplicate_sequence / delete_sequence

Manage sequences

auto_reframe_sequence

Auto-reframe for social media

attach_custom_property

FCP XML custom properties

unnest_sequence

Replace nested sequence with its clips

Workspace & Captions (2 + 1)

Tool

Description

get_workspaces / set_workspace

Switch workspace layouts

create_caption_track

Create caption/subtitle tracks

Timeline QA (2)

Tool

Description

diff_sequence_snapshots

Added / removed / moved / trimmed / retimed / renamed / enabled changes between two sequence snapshots with frame deltas and EDL-like lines

audit_timeline_health

Health score with flash-frame, gap, overlap, repeated-shot, coverage, overlength, and speed findings plus review-frame suggestions

Editor Requests: markers, selection, checkpoints, navigation (5)

Tool

Description

add_markers_batch

Up to 200 sequence or clip markers in one verified request; feed it beat grids from detect_beats, chapters from plan_chapter_markers, or client notes from plan_client_notes_checklist

select_clips_by_pattern

"Select every other clip": every-Nth selection with offset, name/regex, duration, range, track, and enabled filters, read back after selecting

create_sequence_checkpoint / list_sequence_checkpoints

Named [checkpoint] sequence clone before a risky edit, plus a diff_sequence_snapshots-ready snapshot of the original

navigate_playhead

Start, end, in/out, work area, next/previous edit or marker, or frame stepping with position readback

Review and Conversation Planning (2)

Tool

Description

plan_client_notes_checklist

Pasted client or reviewer feedback → prioritized checklist (category, must/should/nice, approvals, questions, timecodes and ranges) and an add_markers_batch payload

plan_multicam_angle_switches

Active-speaker angle switching for stacked camera tracks: minimum holds, crosstalk cover shots, lead-in cuts, cutaways, razor times, per-camera enable ranges, and markers

Both planners are local and deterministic. Premiere exposes no scripting API for switching angles inside a multicam source sequence, so the multicam plan targets synced clips stacked on separate video tracks and is applied through razor_all_tracks, select_clips_in_range, batch_enable_disable, and add_markers_batch on a checkpointed sequence. See editor requests for the community and competitor evidence behind these tools and their verification boundaries.

Speaker Layout (2)

Tool

Description

plan_speaker_checkerboard

Per-speaker segments, split points, and track assignments for checkerboarded dialogue

plan_active_speaker_reframe

Active-speaker vertical reframe keyframes, or static stacked / side-by-side two-speaker layouts

Mask Fit (1)

Tool

Description

compute_mask_fit_motion

Inspect only: Motion Scale and Position that place a still's subject box (source-image fractions) inside an existing Rounded Crop, Crop, or similar mask, with the math inputs and warnings. Apply with set_clip_scale / set_clip_position, then check with capture_frame. No image analysis.

Rhythm Plans (2)

Tool

Description

plan_emphasis_zoom_keyframes

Punch-in zoom keyframes (Motion Scale + subject-anchored Position) from sentence starts, emphasis words, intervals, or supplied triggers

plan_beat_montage

Beat-grid shot assignment for a clip list with add_to_timeline_batch chunks, trim plan, and beat markers

Shorts Intelligence (2)

Tool

Description

rank_short_form_candidates

Rank sentence-aligned windows as short-form candidates with explainable hook, completeness, density, evidence, and duration-fit scores

plan_chapter_markers

Lexical-cohesion chapter segmentation with titles, YouTube timestamps, and ready Chapter marker payloads

Caption Authoring (3)

Tool

Description

build_caption_artifact

Word-grouped SRT/VTT captions with karaoke timestamps, emphasis markup, speaker prefixes, and style presets, written inside an approved workspace

check_caption_safe_zone

Overlap check for caption and graphic rectangles against approximate platform UI zones, with a suggested clear position

retime_caption_file

Local SRT/VTT retimer for after ripple edits: shift, ripple-remove ranges, ripple-insert a gap, or edit one cue; re-import with create_caption_track

Reaction Shorts (3)

Tool

Description

plan_reaction_captions

Stacked speaker-colored caption plan from a word timeline and explicit palette; flash words merge, overlaps stack, unknown speakers stay uncolored

plan_short_subscribe_cta

Brief subscribe overlay placed about two-thirds through a Short, after an optional hook, with brand-safe styling notes

plan_short_export_folder

Series-named export path under an approved Shorts root; create the folder when it is missing and keep Cafe and Watch Club assets separate

Transcript Word Edits (4)

Tool

Description

plan_filler_word_removal

Word-level filler removal plan (um, uh, you know…) with frame-snapped removal and keep ranges

plan_pause_tightening

Shorten long pauses to a target length without deleting speech

plan_word_mute_ranges

Mute or bleep listed words: padded ranges, ready audio keyframes, redacted text

detect_repeated_takes

Group near-duplicate retakes and plan removal of all but the kept take

Platform Delivery Planning (2)

Tool

Description

plan_platform_delivery_matrix

Per-platform sequence settings, fit/fill reframe math, duration and file-size fit, caption safe zones, and an ordered clone → reframe → caption → export → verify route

validate_platform_publish_package

Validate a rendered file plus title, description, hashtags, and content flags against approximate TikTok, Reels, Shorts, YouTube, LinkedIn, X, and Facebook limits

Scripting (2)

Tool

Description

execute_extendscript

Run arbitrary ExtendScript (ES3); requires explicit unsafe-script authority

evaluate_expression

Evaluate a one-line expression; requires explicit unsafe-script authority

...and 100+ more

Track targeting, batch operations, markers, audio levels, motion/transform, metadata, sequence settings, navigation, project analysis, and more. Run get_project_info to get started — the AI will discover what it needs.


MCP Resources

The server exposes fourteen LLM context resources and nineteen workflow prompts:

Resource URI

Description

config://premiere-instructions

Best practices: workflow order, metadata layers, timeline rules, error handling

config://extendscript-reference

Complete ExtendScript API reference for writing custom scripts

config://premiere-workflows

Machine-readable catalog for rough cuts, metadata review, dialogue cleanup, captions, and delivery

config://premiere-project-context

Revisioned local project-context indexing and retrieval workflow

premiere://project/info

Fresh, path-redacted current-project and active-sequence summary

premiere://project/sequences

Bounded sequence inventory with stable Premiere IDs

premiere://project/media

Bounded, path-redacted project-media inventory

premiere://project/bins

Bounded, path-redacted project-bin inventory

premiere://timeline/active

Bounded active-timeline tracks, clips, and markers snapshot

premiere://effects/available

Bounded video/audio effect catalog for planning

premiere://effects/applied

Bounded active-timeline component inventory

premiere://transitions/available

Bounded video/audio transition catalog for planning

premiere://export/presets

Bounded export-preset names and formats, without native paths

premiere://project/metadata

Path-redacted project and active-timeline summary — not XMP or Project Metadata XML

The ten premiere:// snapshots are read-only CEP bridge requests. They include a revision token for stale-state detection and omit native media, project-tree, preset, and output paths. A successful snapshot proves bridge readback only—not licensed-host feature coverage, playback, rendering, or editorial correctness.


Remote Deployment (Fly.io)

The server includes an HTTP/SSE transport (src/http-server.ts) for remote access via mcp-remote or any MCP client that supports Streamable HTTP.

An operator-managed MCP endpoint runs at https://premiere-pro-mcp.fly.dev/mcp (health check: /health). The website is https://premiere-pro-mcp.com, served from a separate repository; other paths on the Fly host redirect there. The endpoint is not a public desktop relay: it cannot connect an authenticated user to Premiere on that user's computer. Public users should use the local stdio setup until the separate device-pairing relay is available.

Connect to an operator-managed instance

{
  "mcpServers": {
    "premiere-pro": {
      "command": "npx",
      "args": ["mcp-remote", "https://your-authorized-instance.example/mcp"]
    }
  }
}

The instance must either provision an operator bearer token or use the OAuth resource-server configuration below. The production endpoint intentionally returns 401 to callers who have not been authorized.

Self-host on Fly.io

# Clone and deploy your own instance
git clone https://github.com/leancoderkavy/premiere-pro-mcp.git
cd premiere-pro-mcp
fly apps create your-app-name
# Required: add bearer token auth. Use a unique, high-entropy secret per deployment.
fly secrets set MCP_AUTH_TOKEN=your-secret-token
fly deploy --remote-only

Then connect with:

{
  "mcpServers": {
    "premiere-pro": {
      "command": "npx",
      "args": ["mcp-remote", "https://your-app-name.fly.dev/mcp",
               "--header", "Authorization: Bearer your-secret-token"]
    }
  }
}

Trusted-operator OAuth resource-server mode

For an identity-aware operator deployment, configure a real OAuth/OIDC authorization server rather than distributing MCP_AUTH_TOKEN. The authorization server must support the MCP client's registration model and issue signed access tokens with an exact audience for this MCP resource.

fly secrets set \
  MCP_OAUTH_ISSUER=https://identity.example.com \
  MCP_OAUTH_JWKS_URI=https://identity.example.com/.well-known/jwks.json \
  MCP_OAUTH_AUDIENCE=https://your-app-name.fly.dev/mcp \
  MCP_PUBLIC_URL=https://your-app-name.fly.dev \
  MCP_OAUTH_REQUIRED_SCOPES=premiere:mcp \
  MCP_OAUTH_ALLOWED_SUBJECTS=your-provider-user-subject

OAuth mode validates the token signature, algorithm, issuer, exact audience, expiry, issued-at time, subject, and required scopes. It publishes protected resource metadata at /.well-known/oauth-protected-resource/mcp and includes that URL in the WWW-Authenticate challenge. Configuration is fail-closed: partial OAuth settings, non-HTTPS production URLs, ambiguous OAuth/shared-token settings, and missing credentials all prevent startup.

MCP_OAUTH_ALLOWED_SUBJECTS is mandatory and restricts this single-bridge deployment to explicitly trusted operator identities. This is an enforcement boundary, not a public-user device model.

This mode authenticates trusted operators but does not yet implement device ownership, desktop pairing, or per-user Premiere routing. Do not expose editor mutations as a public multi-user service until an outbound desktop relay and durable user/device authorization are implemented.

Note: The file bridge still requires the CEP plugin to share the same PREMIERE_TEMP_DIR. For cloud deployments this means running a sync agent or using fly proxy / WireGuard to reach your local machine. detect_silence can analyze only media paths available inside the server filesystem; a desktop-only path is not automatically available to a remote Fly machine. For a shared or multi-user remote deployment, put a managed identity-aware edge in front of the server and replace the shared bearer secret with per-user authorization. The built-in limiter is intentionally process-local defense in depth, not a substitute for an edge/WAF or account system.


Environment Variables

Variable

Description

Default

PREMIERE_TEMP_DIR

Shared temp directory for MCP ↔ CEP communication

OS user temp dir + /premiere-mcp-bridge (macOS fallback is independent of TMPDIR)

PREMIERE_TIMEOUT_MS

Command timeout in milliseconds

30000

PREMIERE_DEFAULT_SEQUENCE_PRESET

Override the auto-discovered .sqpreset used by create_sequence

auto-discovered

PREMIERE_MCP_CAPABILITIES

Comma-separated authority profile; add unsafe-script only when raw scripting is required

inspect,edit,export,filesystem

PREMIERE_MCP_DEBUG

Set to 1 (or true) to emit verbose server diagnostics to stderr

unset

PREMIERE_CONTEXT_BACKEND

Local project-context store: auto, sqlite, json, or memory

auto

PREMIERE_CONTEXT_DIR

Override local context storage; unsafe existing ownership/permissions/links are rejected, safe POSIX directories/files tightened to 0700/0600

OS application-data directory

PORT

HTTP port (HTTP/SSE transport only)

3000

MCP_AUTH_TOKEN

Operator bearer token for controlled HTTP deployments; mutually exclusive with OAuth mode

unset

MCP_OAUTH_ISSUER

Exact trusted OAuth/OIDC token issuer URL

unset

MCP_OAUTH_JWKS_URI

HTTPS JWKS URL used to verify access-token signatures

unset

MCP_OAUTH_AUDIENCE

Exact MCP resource audience, normally the public /mcp URL

unset

MCP_PUBLIC_URL

Canonical HTTPS origin used in protected-resource discovery

unset

MCP_OAUTH_REQUIRED_SCOPES

Space- or comma-separated scopes required for /mcp

premiere:mcp

MCP_OAUTH_ALLOWED_SUBJECTS

Mandatory comma-separated token-subject allowlist for the single operator bridge

unset

ALLOW_UNAUTHENTICATED

Set to 1 only for local/test HTTP harnesses; it is rejected when NODE_ENV=production

unset

MCP_MAX_REQUEST_BYTES

Maximum HTTP MCP request body size

1048576

MCP_HEADERS_TIMEOUT_MS

Maximum time to receive request headers

10000

MCP_REQUEST_TIMEOUT_MS

Maximum time to receive an HTTP request

60000

MCP_KEEP_ALIVE_TIMEOUT_MS

Idle keep-alive socket timeout

5000

MCP_MAX_REQUESTS_PER_SOCKET

Requests permitted on one keep-alive socket

100

MCP_MAX_CONCURRENT_REQUESTS

In-flight authenticated MCP request ceiling

8

MCP_MAX_CONCURRENT_STREAMS

Open authenticated SSE stream ceiling; isolated from operation capacity

32

PREMIERE_MCP_PROJECT_BACKUP_MAX_BYTES

Positive integer byte budget for one project backup

2147483648 (2 GiB)

MCP_RATE_LIMIT_PER_MINUTE

Per-credential token-bucket refill rate

120

MCP_RATE_LIMIT_BURST

Per-credential short burst allowance

30

MCP_MAX_RATE_LIMIT_KEYS

In-memory rate-limit identity ceiling

2048

MCP_TRUST_PROXY

Set to 1 only behind a proxy that overwrites X-Forwarded-For

unset

POSTHOG_API_KEY

PostHog project token; enables privacy-safe MCP usage telemetry

unset

POSTHOG_HOST

PostHog ingestion host

https://us.i.posthog.com

POSTHOG_ENVIRONMENT

Environment property attached to telemetry events

production

POSTHOG_DISTINCT_ID

Optional stable anonymous server identifier

Fly machine ID or random boot ID

When PostHog is enabled, the server records mcp_connection_attempt, mcp_request, mcp_request_rejected, and mcp_tool_call. It also records premiere_mcp_activation_completed only after the read-only verify_premiere_connection check confirms the selected bridge, an open project, and an active sequence. Events contain bounded operational fields such as method, tool name, outcome, status code, duration, and selected bridge. Authentication tokens, IP addresses, MCP arguments, project paths, media names, and tool results are never sent. Person profiles are disabled for these events.

This signal is an aggregate emission, not proof that an analytics provider received it, a count of unique people or editors, or evidence that an editing workflow succeeded. It does not carry a person or editor identifier, so it cannot safely infer "first value."


Project Structure

premiere-pro-mcp/
├── src/
│   ├── index.ts                 # Entry point — stdio transport setup
│   ├── http-server.ts           # Entry point — HTTP/SSE transport (Fly.io / remote)
│   ├── server.ts                # MCP server — registers 441 tools, filtered by authority profile
│   ├── bridge/
│   │   ├── file-bridge.ts       # File-based IPC (write .jsx, poll .json)
│   │   └── script-builder.ts    # ExtendScript generator with ES3 helpers
│   ├── tools/                   # 51 tool modules
│   │   ├── discovery.ts         # Project discovery and queries
│   │   ├── recovery.ts          # Read-only autosave discovery and private bridge telemetry
│   │   ├── project.ts           # Project management and import
│   │   ├── media.ts             # Media and proxy management
│   │   ├── sequence.ts          # Sequence creation and settings
│   │   ├── timeline.ts          # Timeline clip operations
│   │   ├── effects.ts           # Effect application and color correction
│   │   ├── transitions.ts       # Transition management (QE DOM)
│   │   ├── audio.ts             # Audio levels, keyframes, and ffmpeg silence analysis
│   │   ├── av-settings.ts       # Documented AV inspection, mapping, and capability boundaries
│   │   ├── text.ts              # Text overlays and MOGRTs
│   │   ├── markers.ts           # Sequence and clip markers
│   │   ├── tracks.ts            # Track add/delete/lock/visibility
│   │   ├── playhead.ts          # Playhead, work area, in/out points
│   │   ├── metadata.ts          # Metadata, XMP, color labels
│   │   ├── export.ts            # Export, frame capture, encoding
│   │   ├── advanced.ts          # QE DOM: ripple, roll, slide, slip, speed
│   │   ├── keyframes.ts         # Keyframe CRUD and interpolation
│   │   ├── scripting.ts         # Execute arbitrary ExtendScript
│   │   ├── inspection.ts        # Deep project/sequence/clip inspection
│   │   ├── selection.ts         # Clip selection utilities
│   │   ├── clipboard.ts         # Copy effects, batch operations
│   │   ├── source-monitor.ts    # Source monitor control
│   │   ├── track-targeting.ts   # Track targeting, motion, audio props
│   │   ├── utility.ts           # Batch ops, analysis, navigation
│   │   ├── health.ts            # Connectivity ping
│   │   ├── workspace.ts         # Workspace layout switching
│   │   ├── captions.ts          # Caption track creation
│   │   ├── playback.ts          # Timeline/source playback control
│   │   └── project-manager.ts   # Project consolidation/transfer
│   └── resources/
│       └── extendscript-reference.ts  # API reference for LLM context
├── cep-plugin/                  # CEP panel that runs inside Premiere Pro
│   ├── CSXS/manifest.xml        # Extension manifest (PPRO 14.0+)
│   ├── index.html               # Panel UI
│   ├── main.js                  # Bridge polling and script execution
│   ├── host.jsx                 # ExtendScript entry point
│   └── CSInterface.js           # Adobe CEP interface library
├── after-effects-cep-plugin/    # Separate AE CEP bridge for guarded MOGRT recipes
├── scripts/
│   ├── install-cep.sh           # macOS CEP installer (symlink + debug mode)
│   └── install-cep.ps1          # Windows CEP installer (copy + REG_SZ debug mode)
├── Dockerfile                   # Multi-stage Docker build for Fly.io
├── fly.toml                     # Fly.io deployment config
├── RESEARCH.md                  # API research and implementation status
├── AGENTS.md                    # IDE / coding-agent map
├── CONTRIBUTING.md              # Contribution guidelines
├── CHANGELOG.md                 # Version history
└── LICENSE                      # MIT License

Technical Details

CEP and UXP backends

CEP remains the production backend because it provides broad ExtendScript access and the undocumented QE DOM used for effects, ripple deletes, and advanced trims across Premiere Pro 2020–2026. The packaged uxp-plugin is a Premiere 25.6+ preview backend for supported frame export, capability discovery, and state events. It does not silently retry failed UXP mutations through CEP.

ExtendScript Compatibility

All generated scripts use ES3 syntax (var, manual for loops, no arrow functions, no let/const) since ExtendScript is based on ECMAScript 3. The bridge writes a versioned helper library to the shared temp directory and loads it once per ExtendScript engine via $.evalFile; each command then sends only its tool-specific script.

Security

Metadata privacy: CEP get_metadata and get_xmp_metadata now default to bounded parsed fields with GPS, serial, author and contact values omitted. Raw packets require explicit packet flags and include_sensitive: true; source media paths require include_media_path: true. Existing callers expecting raw XML must opt in. Disk context can retain names, transcripts and notes; select PREMIERE_CONTEXT_BACKEND=memory to avoid persistence.

Understand the trust model before deploying this: any client that can reach the MCP server can control Premiere Pro. execute_extendscript and evaluate_expression are arbitrary-code-execution tools by design and are omitted from discovery and denied at call time by default. Enable them only by setting PREMIERE_MCP_CAPABILITIES=inspect,edit,export,filesystem,unsafe-script.

  • Run it locally over stdio unless you have a specific reason not to. That's the safe default.

  • The HTTP transport (http-server) requires MCP_AUTH_TOKEN and refuses to start without it in production. It binds 0.0.0.0 and is remotely reachable, so never expose it publicly without a strong token and edge controls. ALLOW_UNAUTHENTICATED=1 is limited to non-production local/test use.

  • The HTTP transport admits only exact /mcp Streamable HTTP requests, enforces body/socket/request limits, and applies a bounded in-process per-credential rate and concurrency limit before MCP request parsing or Premiere bridge work begins. It returns 413, 429, or 503 on containment failures. Configure an upstream rate limit and request-size limit too; process-local counters do not protect a multi-machine deployment.

  • The HTTP transport serves no web pages. It answers only /mcp, /health, and OAuth protected-resource metadata under a deny-all Content Security Policy. Other GET/HEAD paths on premiere-pro-mcp.fly.dev or a *.premiere-pro-mcp.com host redirect (308) to https://premiere-pro-mcp.com; every other host receives a JSON 404.

  • Media scans yield between asynchronous filesystem operations and bound total traversal: 25,000 entries, 5,000 matching files, 2,000 directories, depth 32, a 1,000-directory pending queue, and a cooperative five-second budget. A stalled OS call can exceed that elapsed budget. Inspect scan_incomplete and scan_limit_reasons before treating a watch baseline as complete; import previews also report incomplete.

  • Project backups stream their copy and checksum work with a configurable byte budget. Only one backup runs per process; concurrent requests fail promptly. Failed or cancelled copies are removed without replacing an existing backup.

  • The Docker runner uses the unprivileged node user (UID 1000). Custom bridge or context volume mounts must be writable by that user and private to the operator. The default context directory is under /home/node/.local/state/premiere-pro-mcp.

  • Dependency audits run in CI for both lockfiles. Keep local .env*, .npmrc, and private key/certificate files out of commits and Docker build contexts; only placeholder .env.example and .env.template files are eligible for Git tracking.

  • Both CEP panels validate the bridge directory before writing a heartbeat or polling commands. Symlinks and directories owned by another user are refused. On POSIX, directories writable by group/other users are refused by both the server and panels; tightening permissions alone cannot make previously staged commands trustworthy. On Windows, only the current user, SYSTEM and Administrators may have write access, including inherited grants. Windows capability and app-container SIDs (S-1-15-*) are ignored: they are not logon principals and appear as inherited FullControl on stock %LOCALAPPDATA% paths. ACL inspection failures also stop startup. Ancestors must also prevent other users from replacing the bridge path; a private child inside a broadly writable parent is insufficient (POSIX sticky temp directories are supported). Choose a new directory under a private user-owned location if the connector rejects a shared temp folder, and configure the same path on the server and panel. Do not copy pending commands from the rejected folder into the new one. Windows checks invoke PowerShell synchronously before publishing commands, with a five-second timeout and 64 KiB output cap; this adds command latency rather than caching a permission decision that could become stale.

  • There is a 500 KB script size limit, and a small regex check that rejects eval(), new Function(), and System.callSystem() in tool-generated scripts. This is a guard rail, not a sandbox — it is trivially bypassable and is not a security boundary. Do not rely on it to contain untrusted input; the real boundary is who can reach the server.

QE DOM

Many tools use the undocumented QE DOM (enabled via app.enableQE()). These tools are marked with "Uses QE DOM" in their descriptions. The QE DOM provides capabilities unavailable through the standard ExtendScript API:

  • Apply effects and transitions by name

  • Ripple delete, roll/slide/slip edits

  • Set clip speed and reverse

  • Frame blending and time interpolation

  • Remove all effects from a clip


Frequently asked questions

What is an MCP server for Adobe Premiere Pro? It is a Model Context Protocol server that gives a compatible AI assistant structured, reviewable control over supported Adobe Premiere Pro workflows on your own computer. This project's display name is MCP for Adobe Premiere Pro; its npm package is premiere-pro-mcp.

How do I use it with Claude? Install the Claude Desktop bundle, install the separate signed Premiere connector, restart Premiere, then ask Claude to run verify_premiere_connection with no changes. That first prompt is read-only. Claude Fable 5.1 is an optional client model for Cursor, Claude Desktop, or Claude Code; see Claude Fable 5.1 workflows.

Where is the GitHub repository? https://github.com/leancoderkavy/premiere-pro-mcp. Releases, the signed .zxp connector, and the Claude .mcpb bundle are on that repository's Releases page.

What is the bridge panel in Premiere Pro? A local CEP panel (Window > Extensions > MCP for Adobe Premiere Pro) that connects the server to a running Premiere Pro instance. "Running" in the panel means the local bridge is available; it does not by itself show that an edit completed. An authenticated UXP panel is an additional, capability-gated route.

Is there a setup guide? Yes - premiere-mcp-setup-guide.md is a portable guide you can attach to any AI assistant, and https://premiere-pro-mcp.com/docs/ hosts the published documentation.

Does it run on Windows and macOS? Both. Node.js 20.19 or newer and Premiere Pro 2020-2026 are required, and the assistant, server, connector, and Premiere should stay on the same computer. Individual tool support remains capability- and host-dependent.

Is this Adobe's AI Assistant? No. This is an independent MIT-licensed project, not an Adobe product and not Adobe's native AI Assistant. It is also distinct from other MCP servers for Premiere Pro; premiere-pro-mcp is the only npm package published from this repository.

Does local-first mean my AI assistant sends no data to a cloud service? The recommended Premiere bridge runs locally. Your AI client's handling of prompts and tool results still applies. Review its settings before sharing sensitive project information; local-first is not a universal no-upload guarantee.

Is every action previewed, undoable, and host-verified? Tool contracts differ. Review action modes and approval requirements before calling an edit. Readback-confirmed results are verified; committed_unverified means the host accepted a change but verification is incomplete. Inspect Premiere before retrying an uncertain mutation. Save a duplicate project for evaluation and confirm rendered output separately.

Which Adobe Premiere Pro tasks are good first automation candidates? Start with a read-only project and timeline inventory. Then evaluate one bounded workflow on a duplicate project: approved media imports, bin organization, marker preparation, or review-frame exports. The automation guide links exact tool contracts and explains what evidence to check. A still-frame export does not prove playback or audio; a local delivery QC scan does not prove every platform requirement.

Where can search engines and AI assistants find current product facts? Use the website's facts page and generated AI reference, which describe the integrity-verified published npm artifact. The source counts in this README can include changes not yet published. Neither catalog counts nor unit tests establish that an operation succeeded on a particular Premiere host.

Is it free? Yes. The server, the CEP connector, and the documentation are MIT licensed and free to use.


Troubleshooting

  1. Verify debug mode:

    • macOS: defaults read com.adobe.CSXS.12 PlayerDebugMode should return 1

    • Windows: reg query "HKCU\SOFTWARE\Adobe\CSXS.12" /v PlayerDebugMode should report REG_SZ 1 (a REG_DWORD value is not valid for unsigned CEP discovery)

  2. Check the plugin exists:

    • macOS: ls ~/Library/Application\ Support/Adobe/CEP/extensions/MCPBridgeCEP

    • Windows: dir "%APPDATA%\Adobe\CEP\extensions\MCPBridgeCEP"

  3. Completely restart Premiere Pro (not just close/reopen the project)

  4. Check the CSXS version matches your Premiere Pro version

  5. Run premiere-pro-mcp --diagnose-cep to check installation metadata and recent Premiere logs.

Version 1.3.0 and newer installs the signed artifacts/MCPBridgeCEP.zxp included in the npm package on Windows. If diagnostics report Signature verification failed, reinstall the latest npm version, fully quit every Premiere process, run premiere-pro-mcp --install-cep, and relaunch.

  1. Open the CEP panel and verify it shows "Running" with a green dot (the bridge normally starts automatically)

  2. Ensure temp directories match between MCP client config and CEP panel

  3. Read the timeout error: if it reports an in-flight heartbeat, dismiss any open Premiere modal dialog; without a heartbeat, verify the bridge is running and using the same temp directory

  4. Increase timeout: set PREMIERE_TIMEOUT_MS to 60000 or higher

  5. Try ping tool to test basic connectivity

  1. Restart the AI client after editing config

  2. Verify the path to dist/index.js is absolute and correct

  3. Run node dist/index.js in a terminal to check for startup errors

  4. Ensure npm run build completed without errors

  1. QE tools require an active sequence — open one first

  2. Some QE operations are index-based and can fail if clips have been reordered

  3. Re-query the sequence structure after QE operations


Star history

If this project saves you time in Premiere, a star helps other editors find it.


Support the project

This is an independently maintained, MIT-licensed project with no company behind it. Every release is tested against real Premiere versions on both Windows and macOS, which takes hardware, licenses, and time.

Free ways to help, in order of usefulness:

  • ⭐ Star the repo — the main way editors discover it

  • 🐛 File a bug with your Premiere version, OS, and the tool name that failed

  • 📝 Report what worked on a host version not yet in the capability coverage table

  • 🔧 Open a PR — see CONTRIBUTING.md

Sponsorship funds host verification, signing certificates, and hosting. It does not buy prioritized support, roadmap influence, or any claim about unverified host behavior.


Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines. AI agents and IDE assistants should read AGENTS.md.

The evidence-backed next improvement pull-request roadmap breaks the proposed feature, protocol, reliability, and performance work into ten reviewable changes with explicit dependencies and live-host acceptance gates.


License

MIT — free for personal and commercial use.

Available Tools

439 tools
acknowledge_operation_recoveryAcknowledge Operation RecoveryA

Acknowledge user-reviewed reconciliation of uncertain execution after current-state inspection. Requires the exact latest recovery and host-state revisions. Consumed operation IDs remain unavailable for replay; acknowledgement does not undo or retry a host edit.

NameRequiredDescriptionDefault
backendYesExecution backend whose uncertain operations should be inspected.
reviewedYesTrue only after reviewing current host state and reconciling the uncertain operations.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_recovery_revisionYesCEP recoveryRevision or UXP transport.recoveryRevision returned by inspection.
expected_host_state_revisionYesExact hostStateRevision returned by the latest inspected bounded host state.
expected_panel_recovery_revisionNoUXP panel.recoveryRevision returned by inspection; required for UXP.
expected_shared_recovery_revisionNoUXP shared.recoveryRevision when shared Premiere execution recovery is required.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing real consequences: it is a write (consistent with readOnlyHint=false) that requires fresh revisions, permanently consumes the operation IDs so they cannot be replayed, and neither undoes nor retries the underlying host edit. That is materially useful and consistent with destructiveHint=false and idempotentHint=false.

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

Conciseness5/5

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

Three tight sentences: purpose first, then the revision prerequisite, then the consequences of acknowledging. No restatement of the title and no filler.

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

Completeness4/5

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

For a state-changing, revision-guarded tool with an output schema, the description covers preconditions, irreversibility of consumption, and the fact that acknowledgement is not a retry. Remaining detail (per-backend revision fields, idempotency) is fully carried by the schema.

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

Parameters3/5

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

Schema coverage is 100% and the nine parameters (including the nested expected_cep_target and idempotency_key semantics) are fully documented in the schema. The description only reinforces that the recovery and host-state revisions must be the exact latest values; it adds no format or fallback detail beyond that. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource (acknowledge ... operation recovery) plus the precondition (user-reviewed reconciliation of uncertain execution after current-state inspection). An agent can tell this is the closure step after inspect_operation_recovery, though that sibling is never named outright.

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

Usage Guidelines4/5

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

Establishes clear context: call only after inspecting current host state and after a user has reviewed the uncertain operations. The prerequisite of the exact latest recovery and host-state revisions is explicit, and 'does not undo or retry a host edit' rules out a misuse. It stops short of naming the inspection sibling or stating explicit when-not-to-call cases.

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

add_adjustment_layerAdd Adjustment LayerA

EXPERIMENTAL (QE DOM): add an adjustment layer at the playhead on the specified track. Refuses when the host lacks the QE APIs; verifies a new public TrackItem using isAdjustmentLayer and placement readback.

NameRequiredDescriptionDefault
track_indexNoVideo track index (default: 0)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

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

Goes beyond the annotations by flagging the tool as EXPERIMENTAL QE DOM, describing its refusal precondition, and disclosing post-write verification via isAdjustmentLayer and placement readback. It does not cover idempotency behavior (notable since idempotentHint is false while the schema exposes an idempotency_key), leaving a small gap for a mutation tool.

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

Conciseness5/5

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

Two tight sentences with the EXPERIMENTAL caveat front-loaded and no filler; the refusal and verification behaviors are packed into one clause each.

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

Completeness4/5

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

With a rich output schema, full annotation coverage, and 100% schema descriptions, the description supplies the key extras an agent needs: experimental status, failure mode, and verification. Only the interaction with the idempotency key and expected-identity guards goes unmentioned in prose.

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

Parameters3/5

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

Schema coverage is 100%, so parameter meaning is already fully documented. The description only implicitly maps to track_index via 'specified track' and adds nothing about expected_cep_target or expected_project_path guards, matching the baseline 3.

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

Purpose4/5

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

States a specific verb and resource (add an adjustment layer) plus placement scope (at the playhead, on the specified track), which is enough to distinguish it from sibling insertion tools like add_title or apply_effect. It does not explicitly name an alternative, so it stops short of a 5.

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

Usage Guidelines3/5

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

Implies usage through the playhead/track placement and discloses a hard precondition (refuses when the host lacks QE APIs), but gives no guidance on when to prefer this over related 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.

add_audio_keyframesAdd Audio KeyframesC

Add audio level keyframes to create fades or level changes

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
keyframesYesArray of keyframe objects with time_seconds and level_db
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), lowering the bar, but the description adds nothing beyond intent. It does not say whether new keyframes are additive or overwrite existing ones at the same time, what happens to prior automation on the clip, or how the idempotency/CEP-guard parameters change retry or failure behavior — all material for a mutation tool.

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

Conciseness4/5

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

One short sentence with zero filler, front-loaded with the action. It is efficient, though the brevity is partly under-specification rather than disciplined compression.

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

Completeness2/5

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 nested keyframe objects, an idempotency key, and two optional CEP-identity guards, a single sentence is not enough. An output schema exists so return values needn't be explained, but ordering rules, overwrite behavior, and the purpose of the guard parameters are all missing.

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

Parameters3/5

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

Schema description coverage is 100%, with detailed per-field docs for node_id, keyframes, level_db bounds, time_seconds, idempotency_key and the expected_cep_target guard, so baseline 3 applies. The description adds no additional parameter meaning (e.g., whether time_seconds must be sorted or relative to clip start).

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

Purpose4/5

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

States a specific verb and resource ('Add audio level keyframes') and adds the intended outcome ('create fades or level changes'). However, it never distinguishes this from close siblings like add_keyframe, adjust_audio_levels, or set_clip_volume, which an agent could easily confuse it with.

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

Usage Guidelines2/5

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

No guidance on when to use this versus adjust_audio_levels (bulk level changes), set_clip_volume, or the generic add_keyframe. No prerequisites are stated, such as the clip having to be on an audio track or keyframes needing to be ordered by time.

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

add_custom_metadata_fieldAdd Custom Metadata FieldA

Add a custom metadata field to the project's metadata schema. This creates a schema/column definition only; it does not set a per-item value. Use set_metadata field_name/value or complete Project Metadata XML with readback to update a value.

NameRequiredDescriptionDefault
field_nameYesInternal name for the metadata field
field_typeYesType of the field: 0 = Integer, 1 = Real, 2 = String, 3 = Boolean
field_labelYesDisplay label for the field
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is covered; the description adds useful context that the write only touches the schema, not item values. It does not say what happens on a duplicate field_name, whether a field can later be removed, or what the response confirms — gaps that matter for a schema-mutating call.

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

Conciseness4/5

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

Three tight sentences with the core purpose front-loaded and the non-goal second. Minor deduction for the opaque phrase 'complete Project Metadata XML with readback', which names a workflow without saying how to reach it.

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

Completeness4/5

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

With an output schema present and 100% parameter coverage, the description needn't explain returns or field formats. It is nearly complete; only prerequisites (e.g. an open/saved project, field_name uniqueness) are left unstated, and the expected_cep_target/expected_project_path guards are covered by the schema.

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

Parameters3/5

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

Schema description coverage is 100% — field_name, field_label, field_type (with the 0-3 enum mapping), idempotency_key and both guard objects are all documented in-schema. The description adds nothing about parameters, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Add a custom metadata field to the project's metadata schema') and immediately clarifies the scope of the mutation: it creates a schema/column definition only. That distinction separates it cleanly from set_metadata, which sits right next to it in the sibling list.

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

Usage Guidelines5/5

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

Explicitly names the condition where this tool is the wrong choice ('it does not set a per-item value') and routes the agent to the correct alternative (set_metadata field_name/value, or the Project Metadata XML path with readback). No inference is required to pick between schema definition and value assignment.

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

add_keyframeAdd KeyframeA

Add and read back a keyframe on an effect property. The receipt warns when its time is outside the clip's visible range. This verifies stored parameter data only; render/playback verification remains host-dependent.

NameRequiredDescriptionDefault
valueYesValue at the keyframe
node_idYesNode ID of the clip
effect_nameYesDisplay name of the effect
time_secondsYesSeconds from the clip's start on the timeline (0 is the clip's first frame) where to add the keyframe
property_nameYesDisplay name of the property
property_indexNoOptional property index from get_effect_properties; required when property_name is duplicated.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations only declare the generic safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description earns credit by adding real behavioral information beyond that: it reads the value back as a receipt, flags when the time falls outside the clip's visible range, and explicitly scopes verification to stored parameter data rather than render/playback. It does not contradict idempotentHint=false, but it also never tells the agent that re-invocation duplicates the keyframe.

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

Conciseness4/5

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

Three tight sentences with the action front-loaded, then the receipt warning, then the verification caveat. No filler, though the final sentence is slightly dense and could be split or trimmed for scannability.

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

Completeness4/5

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

With an output schema present, the description needn't explain the returned receipt, and 100% schema coverage handles the nine parameters including the nested guard objects. It is still slightly thin for a mutation tool with guard parameters and a sibling audio keyframe tool, but 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already carries all nine parameters including property_index disambiguation, idempotency_key semantics, and the expected_cep_target guard. The description adds only a marginal hint about the time domain ('outside the clip's visible range'), which is exactly the baseline-3 case where the schema does the heavy lifting.

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

Purpose4/5

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

Specific verb plus resource: 'Add and read back a keyframe on an effect property' clearly separates it from reads like get_keyframes and mutations like remove_keyframe. It implicitly distinguishes itself from the audio sibling via 'on an effect property', but never names that sibling explicitly, so the differentiation is inferred rather than stated.

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

Usage Guidelines2/5

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

The description gives no when-to-use context: it never says to reach for this instead of add_audio_keyframes, set_effect_property, or set_keyframe_interpolation, and it doesn't mention the prerequisite of inspecting the property first. The only usage-adjacent content is the out-of-range warning, which is a behavior, not routing guidance.

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

add_markerAdd MarkerA

Add a marker to the active sequence or a clip and read its name, comments, color and duration back. EXPERIMENTAL (QE DOM): the receipt reports undoStackIndex movement, which does not prove QE can reverse the marker. Every marker attempt protects an engine undo boundary; undoTracked:false means the marker did not observably advance the QE index. Marker start and end storage are compared at exact integer ticks; unsupported time writes remain unverified with the created marker identity when available.

NameRequiredDescriptionDefault
nameNoName/label for the marker
colorNoMarker color index (0=Green, 1=Red, 2=Purple, 3=Orange, 4=Yellow, 5=White, 6=Blue, 7=Cyan)
node_idNoOptional clip node ID to add the marker to that clip instead of the sequence. Premiere 25.2.3 timeline clips have no marker collection, so this refuses there and names the source time to use with add_marker_to_project_item.
commentsNoComments for the marker
time_secondsYesTime position in seconds for the marker
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoDuration of the marker in seconds (0 for point marker)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only declare readOnly/destructive/idempotent hints, so the description carries real added weight: it discloses that the operation is EXPERIMENTAL (QE DOM), that the undoStackIndex receipt does not prove reversibility, that an engine undo boundary is protected on every attempt, and what undoTracked:false means. These are genuine behavioral caveats an agent cannot get from structured fields. It stops short of stating permission/auth requirements or how partial failures surface in the receipt.

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

Conciseness3/5

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

The purpose is front-loaded in the first sentence, which is good, but the remainder is a dense run of internal QA jargon ('undoStackIndex movement', 'observably advance the QE index', 'unverified with the created marker identity when available') packed into two long sentences. It is information-bearing but poorly parsed; it would benefit from being split and trimmed.

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

Completeness4/5

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

For a 9-parameter mutation tool with nested identity guards and an output schema, the description covers the non-obvious risks (experimental QE path, undo verification limits, tick-exact comparison). Return-value detail is rightly left to the output schema. Missing only explicit prerequisites (active sequence required, CEP vs UXP backend behavior) that the sibling set makes relevant.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all nine parameters including color indices, duration semantics, idempotency, and the CEP guard objects. The description only marginally extends this with 'marker start and end storage are compared at exact integer ticks' and 'unsupported time writes remain unverified', which is note-worthy but does not meaningfully re-specify any parameter.

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

Purpose4/5

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

Opens with a specific verb+resource and scope: 'Add a marker to the active sequence or a clip and read its name, comments, color and duration back.' That distinguishes it from list/update/delete_marker siblings. It never explicitly names the closest alternative (add_marker_to_project_item) in the description itself; that routing only appears inside the node_id schema field.

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

Usage Guidelines3/5

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

The 'active sequence or a clip' framing implies context, and the EXPERIMENTAL/undo discussion hints at when to expect weak results, but there is no explicit when-to-use vs update_marker, list_markers, add_markers_batch, or add_marker_to_project_item guidance in the description. Usage is only implied, not stated.

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

add_markers_batchAdd Markers BatchA

Add up to 200 sequence or clip markers in one verified CEP request (beat grids, chapters, silence reviews, client notes). Every marker is validated and range-checked before the first write; the tool reads back the marker count and each created marker's time and fails closed on any mismatch. EXPERIMENTAL QE: records an observed marker boundary for guarded Undo/Redo; crossing it is refused by default, and unreadable history records unknown protection. This boundary does not verify native marker reversal. Marker start and end storage are compared at exact integer ticks; unsupported time writes remain unverified with the created marker identity when available.

NameRequiredDescriptionDefault
markersYesMarkers to create, in any order; they are sorted by time before writing.
node_idNoOptional timeline clip node ID; markers are then created on that clip instead of the sequence (requires the active sequence). Premiere 25.2.3 timeline clips have no marker collection, so this refuses there and names the source time to use with add_marker_to_project_item.
sequence_idNoSequence ID or name. Defaults to the active sequence.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
allow_beyond_endNoAllow marker times past the sequence end instead of rejecting the whole batch (default false).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
skip_existing_within_framesNoWhen above 0, skip a marker if an existing marker already sits within this many frames of it (default 0 = never skip).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: all markers are validated and range-checked before the first write, the tool reads back count and each marker's time and fails closed on mismatch, and the QE Undo/Redo boundary behavior (refused by default, unreadable history = unknown protection, does not verify native marker reversal) is disclosed. These caveats are exactly the mutation-specific risks annotations cannot express.

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

Conciseness4/5

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

Purpose, use cases, and hard limits are front-loaded in the first sentence, and the safety/verification content follows in a logical order. The QE passage is dense and jargon-heavy ('records an observed marker boundary for guarded Undo/Redo'), costing some readability, but no sentence is filler.

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

Completeness4/5

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

For an 8-parameter, nested-object mutation tool with an output schema, the description covers verification, failure modes, idempotency, and guard refusals well enough to call it safely. It leaves the reviewed-identity guard parameters (expected_cep_target, expected_project_path) entirely to the schema, which is the main remaining gap.

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

Parameters3/5

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

Schema description coverage is 100%, so markers fields, idempotency_key semantics, and node_id refusal behavior are already documented in the schema. The description adds only the batch ceiling and sort behavior, both of which also appear in the schema, so the baseline 3 applies.

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

Purpose5/5

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

The opening states a specific verb and resource with hard scope ('Add up to 200 sequence or clip markers in one verified CEP request') and parenthetical use cases (beat grids, chapters, silence reviews, client notes). Parenthetical cases plus the singular siblings add_marker/add_marker_to_project_item make the batch-vs-single distinction inferable without opening a schema.

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

Usage Guidelines4/5

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

Usage contexts are given explicitly, and one alternative is routed: on Premiere 25.2.3 timeline clips the tool refuses and names the source time to use with add_marker_to_project_item. It stops short of stating when to prefer add_marker or update_marker over the batch, so it is clear context without full exclusions.

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

add_marker_to_project_itemAdd Marker To Project ItemA

Add a marker to a project item (source clip marker). EXPERIMENTAL QE: records an observed marker boundary for guarded Undo/Redo; crossing it is refused by default, and unreadable history records unknown protection. This boundary does not verify native marker reversal. Marker start and end storage are compared at exact integer ticks; unsupported time writes remain unverified with the created marker identity when available.

NameRequiredDescriptionDefault
nameNoMarker name
typeNoMarker type (default: Comment)
item_idYesNode ID or name of the project item
commentsNoMarker comments
color_indexNoColor label index (0-7)
time_secondsYesTime in seconds for the marker
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoDuration of the marker in seconds (0 for point marker)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

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

Beyond the annotations (which only say non-read-only, non-destructive, non-idempotent), the description discloses real behavioral traits: an experimental QE undo/redo boundary that refuses crossing, unknown protection on unreadable history, non-verification of native marker reversal, and tick-exact start/end comparison. The jargon is dense, but it materially adds failure-mode context the annotations do not carry.

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

Conciseness3/5

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

The purpose is front-loaded in the first clause, which is good, but the remaining QE sentences are long and jargon-heavy ('guarded Undo/Redo', 'unreadable history records unknown protection') and reduce readability. It is not bloated with filler, but the phrasing costs clarity.

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

Completeness4/5

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

With an output schema, full annotations, and 100% schema coverage, the heavy lifting is done elsewhere; the description adds purpose and a meaningful caveat about verification limits. For a mutation tool in a guarded QE system, this is close to complete, though it could state prerequisites for the QE guard more plainly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 10 parameters including idempotency_key and expected_cep_target. The description only marginally adds meaning, noting start/end storage is compared at exact integer ticks and that unsupported time writes remain unverified, which touches time_seconds/duration_seconds but does not elaborate parameter usage.

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

Purpose4/5

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

States a specific verb and resource ('Add a marker to a project item'), and disambiguates by adding '(source clip marker)', which separates it from the sibling add_marker/add_markers_batch timeline-marker tools. It does not name those siblings explicitly, so differentiation is inferred rather than stated.

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

Usage Guidelines3/5

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

Usage is implied by the parenthetical 'source clip marker', letting an agent infer this is for source/project items rather than sequences. However, there is no explicit when-to-use/when-not guidance and no named alternative such as add_marker or add_markers_batch, leaving the agent to work out routing.

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

add_text_overlayAdd Text OverlayA

Unavailable: Premiere does not expose a supported scripting API to create caption clips directly from raw text. For on-screen titles from plain text use add_title; for captions import an .srt/.vtt and use create_caption_track.

NameRequiredDescriptionDefault
textYesText content to display
start_secondsNoStart time in seconds (default: 0)
caption_formatNoCaption format (default: subtitle)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoDuration in seconds (default: 5)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

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

The single most important behavioral fact, that the operation is unsupported and will not work, is disclosed up front, which annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) do not reveal. What it omits is what actually happens on invocation, e.g. whether the call throws a specific error or returns a no-op result despite the full mutation-style schema.

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

Conciseness5/5

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

Two sentences, zero waste, and the disqualifying unavailability is front-loaded before the routing advice. Every clause carries decision-relevant information.

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

Completeness4/5

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

For a tool that cannot be used, the description supplies the reason and both redirect targets, which is sufficient for correct agent behavior. The remaining gap is behavioral: it never says what a caller sees if the tool is invoked anyway, which matters given a rich 7-parameter mutation schema and an output schema still attached to it.

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

Parameters3/5

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

Schema description coverage is 100% across 7 parameters, including detailed prose on idempotency_key and expected_cep_target, so the schema already carries all parameter meaning. The description adds nothing about parameters, but baseline 3 applies when the schema does the heavy lifting, and the parameters are moot for an unavailable tool.

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

Purpose4/5

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

The description states plainly that the tool cannot create caption clips from raw text because Premiere exposes no supported API, which tells an agent exactly what this tool is and is not. It doesn't restate the surface purpose (placing a text overlay on the timeline), but the unavailability notice is more valuable to selection than a restatement would be.

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

Usage Guidelines5/5

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

It names two concrete alternatives and the condition that selects each: add_title for on-screen titles from plain text, create_caption_track for captions after importing an .srt/.vtt. Both branches are unambiguous and cover the two plausible intents an agent would have for this tool.

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

add_titleAdd TitleA

Add an on-screen title from plain text using a stock Essential Graphics template that ships with Premiere (default: Basic Title). Pass text for one line, or lines to fill the template's text fields in order (for example a lower third's name and role). Premiere-built templates (kind 'premiere') get the text baked into a verified copy before import, because Premiere exposes no writable text for them (textVerification 'template_verified'; confirm the render with export_frame). The baked copy path is returned as templateFile and saved under the application support premiere-pro-mcp/titles folder (macOS: ~/Library/Application Support/premiere-pro-mcp/titles). The cache keeps the newest 50 baked copies by modification time; export or copy templates elsewhere if a project needs older copies retained. After Effects-built templates (kind 'after_effects') are imported and their text fields written by position and read back from Premiere (textVerification 'verified', 'mismatch', 'missing_property', or 'committed_unverified'). The graphic is trimmed to duration_seconds and its length read back. Use list_stock_titles to see templates, their kind, and how many lines each takes.

NameRequiredDescriptionDefault
textNoTitle text for the first text field. Specify exactly one of text or lines.
linesNoText for each of the template's text fields in order (see list_stock_titles). Specify exactly one of text or lines.
templateNoStock template name such as "Basic Title", "Bold Title", or "Basic Lower Third", or category/name such as "Titles/Bold Title" (default: Basic Title).
track_indexNoZero-based video track for the graphic (default: 1, the track above the main footage).
start_secondsNoTimeline start in seconds (default: 0).
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoHow long the title stays on screen in seconds (default: 5).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses the premiere baking step and why (no writable text), the textVerification status values, the baked-copy file location, the 50-copy cache retention policy with a data-loss warning, and the trim-and-read-back length check. This is rich, mutation-relevant context with no annotation contradictions.

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

Conciseness4/5

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

Front-loads purpose and the text/lines distinction, then elaborates behavior. It is dense but every clause (paths, cache warning, verification names) carries signal; slightly long but not padded.

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

Completeness5/5

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

Given an output schema and full annotation set, the description fills the genuinely hard parts: the two template-kind pipelines, verification states, and cache retention. Nothing an agent needs to call correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds useful meaning about text vs lines and how the template parameter's kind changes behavior, but says nothing about track_index, start_seconds, idempotency_key, or expected_cep_target, which the schema alone must carry.

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

Purpose5/5

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

States a specific verb (Add) and resource (on-screen title from plain text via a stock Essential Graphics template), plus names the default. It is clearly distinguishable from siblings like add_text_overlay and import_mogrt by emphasizing stock template workflow.

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

Usage Guidelines4/5

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

Explicitly routes the agent to list_stock_titles to discover templates, their kind, and line counts, and explains the two execution paths by template kind. Lacks an explicit 'use X instead when...' against the other text/mogrt tools, so not quite a 5.

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

add_to_render_queueAdd To Render QueueA

Request an Adobe Media Encoder render-queue handoff for the active sequence. Requires a saved project and an .epr preset_path. Same as Project presets are refused before Premiere is contacted because AME encodes from a scratch project copy. Optional start_batch requests processing of every ready AME queue job, including unrelated jobs.

NameRequiredDescriptionDefault
output_pathYesFull output file path
preset_pathYesRequired path to an AME preset file (.epr). Omitting this raises an Illegal Parameter error on current Premiere hosts.
start_batchNoOpt in to start the entire ready Adobe Media Encoder queue after this handoff, including unrelated jobs. Default false (enqueue only). A successful call does not verify that any render started or completed.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing that presets are rejected before Premiere is contacted and why (AME encodes from a scratch project copy), and that start_batch sweeps unrelated ready jobs. It omits retry/idempotency behavior and that success doesn't confirm a render started (that detail lives only in 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.

Conciseness3/5

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

Compact, but the sentence 'Same as Project presets are refused before Premiere is contacted…' is grammatically broken and reads ambiguously, forcing the reader to reconstruct whether 'Same as Project' is a preset type or a comparison. That damaged clause costs clarity in an otherwise front-loaded description.

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

Completeness5/5

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

An output schema exists, so return values needn't be described. Prerequisites, the preset requirement, the pre-flight refusal, and the side effect of start_batch are all covered — enough for a correct call.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already carries parameter meaning. The description reinforces preset_path and start_batch but adds no syntax or semantics beyond what the schema states, and says nothing about output_path, expected_cep_target, or expected_project_path.

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

Purpose4/5

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

States a specific verb and resource: requesting an Adobe Media Encoder render-queue handoff for the active sequence. An agent can tell it apart from export_sequence or encode_project_item at a high level, though the description never explicitly contrasts those siblings.

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

Usage Guidelines3/5

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

It gives prerequisites (saved project, .epr preset_path) and a refusal condition, but never says when to choose this over siblings such as start_batch_encode, encode_project_item, encode_file, or export_sequence. Usage is implied rather than routed.

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

add_to_timelineAdd To TimelineA

Insert a project item at a timeline position. Experimental: if a target clip spans that point, QE razors it before insertion to attempt to preserve its tail; both target and sync-locked track changes are read back. A host may still displace a tail, in which case the edit is reported as committed_unverified. Pass scope 'target_tracks' to ripple only the named pair (this will desync other tracks).

NameRequiredDescriptionDefault
scopeNoWhich tracks shift: 'sync_locked' (default) matches Premiere's insert; 'target_tracks' ripples only the named pair and WILL desync other tracks.
item_idYesNode ID or name of the project item to add
track_indexNoVideo track index (0-based, default: 0)
start_secondsNoStart time in seconds on the timeline (default: 0)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
audio_track_indexNoAudio track index for the audio portion (default: 0)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

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

The description adds substantial behavior beyond the annotations: it is experimental, may razor a spanning target clip to preserve its tail, reads back target and sync-locked track changes, may still displace a tail, and reports those cases as committed_unverified. It also warns that 'target_tracks' scope will desync other tracks, which is useful risk context for a mutating edit.

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

Conciseness4/5

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

The description is front-loaded with the core action and then covers the experimental caveat and scope warning. It is dense and the middle sentence is long, but every sentence carries meaningful operational information.

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

Completeness4/5

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

For a complex timeline-mutation tool with eight parameters, nested guard objects, and an output schema, the description covers the key behavioral risks and the important scope option. It leaves alternative-tool selection and some guard-parameter rationale to the schema and sibling list, but is otherwise sufficiently complete for safe invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well documented. The description reinforces the meaning and risk of the scope parameter, but it does not add much parameter semantics beyond what the schema already states, and it does not discuss the other seven parameters.

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

Purpose4/5

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

States a specific verb and resource: 'Insert a project item at a timeline position.' The purpose is clear, but it does not explicitly distinguish itself from nearby siblings such as add_to_timeline_batch, insert_from_source, or overwrite_clip.

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

Usage Guidelines3/5

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

It gives one concrete usage rule for the scope parameter: pass 'target_tracks' to ripple only the named pair and desync other tracks. However, it does not say when to choose this tool over overwrite_clip, insert_from_source, or add_to_timeline_batch, leaving the main tool-selection guidance implicit.

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

add_to_timeline_batchAdd To Timeline BatchA

Insert up to 32 project items with insert-edit semantics in one validated CEP request. Experimental QE sync-lock handling may ripple or split earlier placements. The tool preflights items and tracks, then verifies every placement again in the final sequence; changed placements return committed_unverified with their observed final positions.

NameRequiredDescriptionDefault
clipsYesOrdered placements. They use the same insert-edit semantics as add_to_timeline; later placements must not share a target video-track start time.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior5/5

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

Goes well beyond the annotations: it warns that experimental QE sync-lock handling 'may ripple or split earlier placements', explains the preflight-then-verify workflow, and defines the committed_unverified outcome with observed final positions. That is exactly the risk and result-shape information an agent needs before a mutating batch call.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the operation and then the side-effect risk and verification semantics. Some jargon ('validated CEP request', 'Experimental QE sync-lock') assumes domain knowledge but is not padding.

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

Completeness4/5

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

With full schema coverage, annotations, and an output schema, the description supplies the missing narrative: side effects on existing placements and the committed_unverified result state. The remaining gap is routing guidance versus the single-item add_to_timeline, which an agent facing 150+ siblings would still have to infer.

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

Parameters3/5

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

Schema description coverage is 100% and the nested parameters (clips, idempotency_key, expected_cep_target, expected_project_path) are documented in detail in the schema itself, so baseline 3 applies. The description adds nothing parameter-specific – notably it never mentions that an idempotency_key is available for safe retries, which the schema documents at length.

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

Purpose4/5

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

States a specific verb and resource with scope: 'Insert up to 32 project items ... in one validated CEP request.' The batch/limit framing tells an agent this is the multi-placement variant, but the description never names the single-item sibling (add_to_timeline) that would complete the differentiation – that link only appears in the clips schema text.

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

Usage Guidelines3/5

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

Usage is implied by 'up to 32 ... in one validated CEP request', i.e. reach for this when placing multiple items together rather than one at a time. There is no explicit when-to-use/when-not statement, no mention of add_to_timeline or overwrite_clip as alternatives, and no guidance on sequencing vs other edit tools.

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

add_trackAdd TrackB

Add verified video or audio tracks to the active sequence. Returns an error if Premiere cannot add the exact requested count.

NameRequiredDescriptionDefault
countNoNumber of tracks to add (default: 1)
track_typeYesType of track to add
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

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

The description usefully adds the all-or-nothing guarantee: it errors rather than partially adding when the exact requested count cannot be met. That is real value beyond the annotations (destructiveHint=false, idempotencyHint=false). But it omits the idempotency/replay model that the schema's idempotency_key implies, leaving the agent to infer it from the parameter doc.

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

Conciseness4/5

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

Two tight sentences, front-loaded with the action and followed by the failure contract. Nothing is wasted, though the second sentence could carry the sibling differentiation instead of only the error behavior.

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

Completeness3/5

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

With five parameters, nested guard objects, and an output schema, the mechanical details are covered elsewhere. What is missing is the one thing only the description can supply: why this exists alongside add_tracks and when each applies.

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

Parameters3/5

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

Schema description coverage is 100%, so parameter meaning is fully documented in structured fields; baseline is 3. The description adds only that tracks added are 'verified' and that count must be satisfiable, without clarifying track_type/count defaults or the expected_* guard objects.

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

Purpose4/5

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

States a specific verb and resource (add video/audio tracks to the active sequence), so the action is unmistakable. However, it never distinguishes itself from the sibling tool add_tracks (plural), which appears to do essentially the same thing, and 'verified' is left unexplained.

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

Usage Guidelines2/5

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

No indication of when to use this versus add_tracks, nor any stated preconditions (e.g. an active sequence must exist, targeting behavior). The only conditional content is the error-on-count clause, which is a behavior, not usage guidance.

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

add_tracksAdd TracksA

Add video and/or audio tracks through QE, verify the active sequence gained the exact requested counts, and report explicitly when QE inserted the new tracks at index 0 and shifted every existing track up.

NameRequiredDescriptionDefault
audio_tracksNoNumber of standard stereo audio tracks to add (default: 0)
video_tracksNoNumber of video tracks to add (default: 0)
audio_51_tracksNoNumber of 5.1 audio tracks to add (default: 0)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
audio_mono_tracksNoNumber of mono audio tracks to add (default: 0)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

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

Adds a genuinely non-obvious behavioral fact beyond the annotations: QE inserts at index 0 and shifts every existing track up, which changes track indices agents may rely on. It also commits to count verification. It omits failure/rollback behavior and does not mention the idempotency_key guard despite idempotentHint=false.

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

Conciseness4/5

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

One front-loaded sentence that puts the action before the verification and side-effect clauses; every clause carries information. It is a dense run-on, but nothing is wasted.

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

Completeness4/5

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

Output schema exists, so return values need no explanation, and the description covers the mutation's most surprising consequence. It leaves out prerequisites (an active sequence must exist) and what happens on partial or failed insertion, and does not point at the singular add_track alternative.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including the counts and the idempotency/guard objects is already documented in the schema. The description only echoes 'exact requested counts' without adding semantics such as defaults or interaction between track types, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource (add video and/or audio tracks) plus the mechanism (through QE) and an explicit post-check on the active sequence's counts. It does not distinguish itself from the sibling add_track, so an agent seeing both has no stated basis for choosing.

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

Usage Guidelines3/5

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

Usage is implied by references to 'the active sequence' and by the verify-after step, but there is no explicit when-to-use guidance, no when-not, and no routing to sibling add_track for single-track insertion.

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

add_transitionAdd TransitionA

EXPERIMENTAL (undocumented QE DOM): Add a video transition between two clips at a cut point. Reads the transition back from the sequence track.

NameRequiredDescriptionDefault
track_indexYesVideo track index (0-based)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
transition_nameYesName of the transition (e.g., 'Cross Dissolve', 'Dip to Black')
duration_secondsNoDuration of the transition in seconds (default: 1.0)
cut_point_secondsYesTime position in seconds of the cut point where the transition should be placed. Snapped to the sequence frame grid and matched to the nearest clip edge within half a frame.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

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

The description adds useful context beyond the annotations by calling out the experimental undocumented QE DOM path and noting that the transition is read back from the sequence track. It does not elaborate on failure modes, permission needs, or the optional idempotency and guard parameters.

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

Conciseness5/5

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

Two sentences, front-loaded with the experimental warning and a clear action statement. Nothing is wasted, and the read-back note is compact and relevant.

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

Completeness4/5

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

Given rich schema descriptions, an output schema, and annotations covering safety, the description is adequate for selection and invocation. It flags the experimental QE DOM nature, though it could say more about guard/idempotency behavior for this complex mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains all seven parameters in detail. The description adds no parameter-level meaning beyond the high-level notion of placing a transition at a cut point.

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

Purpose4/5

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

The description states a specific verb and resource: adding a video transition between two clips at a cut point. This distinguishes it from clip-level or batch transition tools by scope, though it does not name sibling alternatives explicitly.

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

Usage Guidelines3/5

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

It implies usage at a cut point between two clips and flags the tool as experimental QE DOM. However, it gives no explicit when-not guidance or alternatives such as add_transition_to_clip or batch_add_transitions.

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

add_transition_to_clipAdd Transition To ClipA

EXPERIMENTAL (undocumented QE DOM): Add a transition to a specific video clip's start, end, or both edges, then read back the requested placement.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
positionNoWhere to apply the transition (default: end)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
transition_nameYesName of the transition
duration_secondsNoDuration of the transition in seconds (default: 1.0)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only declare it is a non-destructive, non-idempotent mutation; the description adds genuinely new context — that it rides an undocumented QE DOM path and that it verifies by reading back the requested placement. It stops short of stating what happens on a partial/failed apply or whether the clip must be selected.

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

Conciseness4/5

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

One front-loaded sentence with the risk warning first and the effect second — no waste. It is arguably too short for the parameter surface, but nothing in it is filler.

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

Completeness3/5

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

An output schema exists, so return values needn't be explained. But for a 7-parameter mutation with nested CEP guard objects and an idempotency key, the description says nothing about the precondition checks, session/restart behavior of keys, or where transition names come from — an agent must read the schema to call it safely.

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

Parameters3/5

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

Schema coverage is 100%, so the heavy lifting is already done; the description only echoes the start/end/both placement semantics. It adds nothing on transition_name sourcing, duration_seconds, or the idempotency_key and expected_cep_target guards.

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

Purpose4/5

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

States a specific verb (add a transition), the exact target (a specific video clip), and the edges affected (start, end, or both), plus a read-back of the placement. It is clearly the single-clip counterpart to add_transition/batch_add_transitions, though it never names those siblings.

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

Usage Guidelines3/5

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

The 'EXPERIMENTAL (undocumented QE DOM)' prefix signals a caveat but gives no routing rule: it does not say when to prefer this over add_transition, batch_add_transitions, or list_available_transitions (which supplies valid transition_name values). Usage is only implied by the 'specific clip' wording.

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

adjust_audio_levelsAdjust Audio LevelsA

Adjust a clip's Volume > Level in dB. Does not read or change Essential Sound Amplify automation.

NameRequiredDescriptionDefault
node_idYesNode ID of the audio or video clip
level_dbYesAudio level in dB (0 = unity, negative = quieter, positive = louder)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, and idempotentHint=false, so the safety profile is mostly covered. The description adds real value by naming the exact property mutated and stating that Essential Sound Amplify automation is untouched, but says nothing about prerequisites, keyframe interaction, or the availability of the idempotency_key retry semantics.

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

Conciseness5/5

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

Two short sentences, the action front-loaded and the scope exclusion immediately after. Nothing is wasted or buried.

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

Completeness3/5

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

An output schema exists and the input schema is fully documented, so return and parameter details are covered elsewhere. What the description leaves unaddressed is the interaction with sibling volume tools, whether it works on both audio and video clips, and keyframe/automation behavior beyond the Essential Sound exclusion.

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

Parameters3/5

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

Schema description coverage is 100%, so node_id, level_db, idempotency_key, and the guard objects are all documented in structured data, including the dB sign convention. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and target property path ("Adjust a clip's Volume > Level in dB"), which is more precise than a generic volume setter. It does not, however, differentiate itself from close siblings such as set_clip_volume, set_clips_volume, or set_clip_pan, so an agent cannot tell from the description alone which one to pick.

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

Usage Guidelines3/5

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

The negative scope ("Does not read or change Essential Sound Amplify automation") gives one exclusion, which is useful. But there is no positive when-to-use guidance and no pointer to an alternative for reading level, for Essential Sound Amplify adjustments, or for batch volume changes.

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

analyze_dialogue_edit_candidatesAnalyze Dialogue Edit CandidatesA
Read-onlyIdempotent

Analyze caller-supplied, revision-bound transcript segments and optional local silence ranges for deterministic dialogue-edit candidates. It never calls a model, persists transcript text, or changes Premiere.

NameRequiredDescriptionDefault
segmentsYesNormalized transcript segments with stable IDs, source IDs, transcript revisions, time ranges, text, and optional speaker labels.
filler_wordsNoExact normalized filler words or phrases to flag for review.
silence_rangesNoOptional source-time silence ranges returned by local analysis.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
minimum_silence_secondsNoMinimum silence duration to return; defaults to 0.7 seconds.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

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

Adds real information beyond the annotations: it declares the analysis is deterministic, makes no model calls, does not persist transcript text, and does not mutate Premiere — the persistence and no-model claims are not in the annotation set. It stops short of saying the call is bounded by maxItems/timeouts or that results reflect only the supplied segments with no host inspection.

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

Conciseness4/5

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

Two dense sentences with no filler, and the core purpose is front-loaded ahead of the negative guarantees. It is efficiently sized, though the compressed adjective stack ('caller-supplied, revision-bound') costs a little readability for a schema this large.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the nested guard parameters are fully described in the schema. What is missing is where the candidates go next and why an agent would pick this over review_dialogue_candidates — the one real completeness gap for a tool with so many close siblings.

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

Parameters3/5

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

With 100% schema description coverage, the schema already documents segments, filler_words, silence_ranges, minimum_silence_seconds, and the CEP guard parameters in detail. The description only restates the two headline inputs ('transcript segments' and 'optional local silence ranges') and adds 'revision-bound', so it contributes marginal semantics beyond the schema.

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

Purpose4/5

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

The description pairs a specific verb ('analyze') with a concrete resource ('caller-supplied, revision-bound transcript segments') and states the output class ('deterministic dialogue-edit candidates'). It is clear in isolation, but it never distinguishes itself from the near-identical sibling review_dialogue_candidates or from plan_filler_word_removal/plan_pause_tightening, which consume similar inputs.

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

Usage Guidelines3/5

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

'Caller-supplied' plus 'never calls a model' implies the caller must already hold transcript text (e.g. from get_clip_transcript_uxp) and that this is a pure-compute step, which is useful implied context. However, there is no explicit when-to-use, no when-not-to-use, and no reference to the obvious alternatives review_dialogue_candidates or the planning tools the candidates feed into.

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

analyze_loudnessAnalyze LoudnessA

Measure integrated loudness (LUFS), loudness range (LU), and true peak (dBFS) from a local media file using FFmpeg's EBU R128 filter. Analysis only: it does not normalize audio or change Premiere.

NameRequiredDescriptionDefault
media_pathNoAbsolute path to a local audio or video file. Provide this or project_item_id.
target_lufsNoOptional delivery target in LUFS (for example -14 streaming, -16 podcast, or -23 broadcast)
tolerance_luNoAllowed absolute difference from target_lufs (default: 1 LU)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
project_item_idNoProject item whose local media path should be resolved through Premiere. Provide this or media_path.
max_true_peak_dbfsNoOptional maximum acceptable true peak in dBFS (commonly -1 or -2)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

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

The description adds real context beyond annotations: the exact measurement standard (EBU R128), what is measured, and that no audio is altered and Premiere state is untouched. However it sits in tension with readOnlyHint=false and never explains why an ostensibly analysis-only tool carries idempotency_key and CEP identity guard parameters, leaving the agent uncertain about actual side effects (subprocess spawn, temp files, job dedup).

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

Conciseness5/5

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

Two sentences, zero filler, with the measurement definition front-loaded and the critical scope caveat ('Analysis only') placed immediately after. Nothing in it is redundant with the name or title.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and the required parameters are all optional. But for an 8-parameter tool with nested CEP guard objects, the description omits how target/threshold parameters change the result and why identity/idempotency guards exist on an analysis operation, leaving meaningful agent-facing gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented inline, including media_path vs project_item_id and the idempotency_key contract. The description adds no parameter-level meaning on top of that, notably omitting that target_lufs/tolerance_lu/max_true_peak_dbfs turn the call into a compliance evaluation, which is the baseline-3 outcome.

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

Purpose4/5

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

Specific verb plus resource plus units: 'Measure integrated loudness (LUFS), loudness range (LU), and true peak (dBFS) from a local media file using FFmpeg's EBU R128 filter.' It implicitly separates itself from the normalization sibling ('it does not normalize audio') but never names normalize_loudness_file, so an agent must infer the pairing rather than read it.

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

Usage Guidelines3/5

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

The negative scoping sentence ('Analysis only: it does not normalize audio or change Premiere') implies when to pick this over a normalize tool, but there is no explicit when-to-use, no prerequisite (FFmpeg availability, media must be online/local), and no named alternative. Usage is inferable rather than stated.

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

analyze_video_interlacingAnalyze Video InterlacingB

Classify decoded video frames as progressive, top-field-first, bottom-field-first, mixed, or undetermined using FFmpeg idet. Read-only delivery preflight.

NameRequiredDescriptionDefault
use_cacheNoOpt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.
media_pathYesExisting local video file
sample_secondsNoDecode sample duration from 1 through 300 seconds (default: 30)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
analysis_revisionNoOptional project/timeline revision to isolate otherwise-identical analysis inputs.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior1/5

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

The description asserts 'Read-only delivery preflight' while the annotations declare readOnlyHint=false, which directly misleads an agent about whether the call mutates state. The presence of an idempotency_key described for 'this intended edit' further muddies the read-only claim, and the description resolves none of it.

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

Conciseness5/5

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

Two tight sentences, zero filler, with the operation and its output classes front-loaded ahead of the usage context.

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

Completeness3/5

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

An output schema exists so return values need no explanation, and the purpose and method are complete. However, for a tool carrying idempotency, CEP identity guards, and caching options, the description says nothing about sample scope, cost, or mutation semantics, and its read-only claim conflicts with the annotation.

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

Parameters3/5

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

Schema description coverage is 100%, so media_path, sample_seconds, use_cache, and the guard parameters are already fully documented. The description adds no parameter-level meaning beyond what the schema provides, which is acceptable at baseline 3.

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

Purpose5/5

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

States a specific verb ('Classify'), the exact resource ('decoded video frames'), the enumerated output categories, and the underlying mechanism (FFmpeg idet). This is clearly distinguishable from siblings like analyze_video_qc or detect_source_scene_changes.

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

Usage Guidelines3/5

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

'Read-only delivery preflight' implies the context in which to reach for it, but no explicit when-to-use versus alternatives (analyze_video_qc, inspect_media_streams) is given and there are no exclusions.

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

analyze_video_qcAnalyze Video QcB

Analyze a local video delivery for sustained black and frozen sections with FFmpeg. Read-only: it does not contact Premiere or modify the file.

NameRequiredDescriptionDefault
media_pathYesPath to an existing local video file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
minimum_black_secondsNoMinimum black duration to report (default: 0.5)
minimum_freeze_secondsNoMinimum frozen duration to report (default: 1)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior1/5

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

The description states 'Read-only: it does not contact Premiere or modify the file', while the annotations declare readOnlyHint=false. The engine (FFmpeg), the local-only scope and the non-mutation claim are all useful behavioral context, but they directly conflict with the structured safety hint the agent will weight. This is an Annotation Contradiction.

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

Conciseness5/5

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

Two short sentences, front-loaded with what is analyzed and finished with the safety constraint. Nothing is redundant or padded.

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

Completeness4/5

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

With an output schema present and full schema coverage, the description only needs to orient the agent, and 'black/frozen detection on a local file via FFmpeg' does that. The remaining gap is that it never tells the agent how the Premiere-oriented guard parameters relate to a purely local analysis.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains media_path, the two threshold defaults and the full CEP/idempotency guard machinery. The description adds no parameter meaning at all — notably it never says the expected_cep_target/expected_project_path guards are inert for this local-only tool. Baseline 3 applies.

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

Purpose4/5

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

The description names a concrete verb and target ('Analyze a local video delivery') plus the exact defects it looks for ('sustained black and frozen sections with FFmpeg'). That makes it distinguishable from near-neighbors like detect_scene_edits or inspect_rendered_video_scopes, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage context is only implied: 'local video delivery' plus 'does not contact Premiere' hints this is for offline QC of a file rather than the open project. There is no explicit when-to-use clause, no exclusion, and no pointer to alternatives such as verify_delivery_file or inspect_rendered_video_scopes.

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

apply_after_effects_render_handoffApply After Effects Render HandoffA

Import exactly one previewed completed AE render into its approved Premiere bin after rechecking both hosts and file metadata. Requires confirmation and consumes the token before dispatch. Does not save, render, or change a timeline.

NameRequiredDescriptionDefault
preview_tokenYesOne-time ten-minute token from preview_after_effects_render_handoff.
confirm_importYesMust be true after reviewing the exact file and destination.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

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

Beyond annotations, it discloses that both hosts and file metadata are rechecked, that confirmation is mandatory, and that the one-time token is consumed before dispatch — a real side effect not captured by the hints. It stops short of describing failure modes or what state is left if the import partially fails.

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

Conciseness5/5

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

Three tight sentences: the action first, then the precondition/side effect, then the exclusions. Every sentence carries distinct information with no repetition of the schema.

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

Completeness4/5

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

For a mutating cross-host tool with a rich schema and output schema, the description covers prerequisites, guard checks, and side effects well. A minor gap: it never says how the destination bin is determined (presumably carried by the token), which an agent might wonder about.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains preview_token, confirm_import, idempotency_key, and the CEP guard objects in detail. The description only reinforces the 'exactly one' scope and token consumption; it adds no syntax or usage detail beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

Specific verb+resource with precise scope: 'Import exactly one previewed completed AE render into its approved Premiere bin.' It also states three explicit non-goals ('Does not save, render, or change a timeline'), which separates it cleanly from preview_after_effects_render_handoff and apply_mogrt_premiere_handoff.

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

Usage Guidelines4/5

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

The preconditions are clear: the render must be previewed/completed and requires confirmation, and the description notes the token is consumed before dispatch, implying the preview step must precede this call. It gives exclusions (no save, render, or timeline change) but doesn't explicitly name the prerequisite sibling tool in prose — that routing is left to the preview_token schema description.

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

apply_audio_effectApply Audio EffectB

Apply an audio effect to a clip. Experimental QE catalog lookup includes an exact-name probe when enumeration is empty. A component-list readback does not verify rendered audio.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
effect_nameYesName of the audio effect
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent. The description adds genuinely non-obvious context: that the QE catalog lookup falls back to an exact-name probe when enumeration is empty, and that a component-list readback does not prove rendered audio actually changed. That verification caveat is exactly the kind of nuance annotations cannot convey, though the presence of an idempotency_key parameter alongside idempotentHint=false is never addressed.

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

Conciseness4/5

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

Three short sentences with the purpose front-loaded and no filler. The two trailing sentences are dense jargon ('QE catalog lookup', 'component-list readback') that could be plainer, but they are compact rather than padded.

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

Completeness3/5

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

An output schema exists and annotations plus 100% schema coverage carry most structural burden, and the description adds a useful verification caveat. However, for a five-parameter mutation tool with nested conditional guards, it omits prerequisites (effect availability), the sibling routing, and any hint about failure modes the guards produce.

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

Parameters3/5

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

Schema description coverage is 100% and nested guard objects are documented in-schema, so the baseline of 3 applies. The description touches only obliquely on effect_name resolution via the 'exact-name probe' remark and says nothing about node_id, idempotency_key, or the optional identity guards.

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

Purpose4/5

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

The first sentence names a specific verb (apply) and resource (audio effect on a clip), which is materially more precise than the bare title. It does not distinguish itself from close siblings such as apply_effect, batch_apply_effect, or list_available_audio_effects, so an agent must infer which one to choose.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus apply_effect (generic) or batch_apply_effect, and no guidance that effect_name should come from list_available_audio_effects. The follow-up sentences describe internal lookup and verification mechanics rather than invocation conditions.

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

apply_edit_planApply Edit PlanA

Apply a previously previewed compound edit after revalidating stable project, sequence and target identities before activation or mutation. Requires the edit capability and exact preview confirmation token; changed targets require a fresh preview. Ripple plans require the reviewed sequence to be active for the read-only QE sync-lock preflight.

NameRequiredDescriptionDefault
planYesAn edit plan: { sequence_id?, operations: [...] } with up to 100 insert_clip and remove_clip operations. Operations run in order, and each one's times refer to the timeline as the operations before it left it.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
confirmation_tokenYesExact token returned by preview_edit_plan
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

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

Adds real behavior beyond the annotations: identity revalidation of project, sequence and target before mutation, a read-only QE sync-lock preflight for ripple plans, and preview staleness semantics. It does not say what happens when revalidation fails, whether a multi-operation plan is atomic or partially applied, or whether the edit is undoable as one unit – significant omissions for a mutation tool whose annotations only supply generic hints.

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

Conciseness4/5

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

Three sentences, no filler, with the purpose front-loaded and preconditions following. The terminology is dense ('QE sync-lock preflight', 'edit capability') but each sentence carries distinct information.

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

Completeness4/5

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

The input schema is very rich and an output schema exists, so the description's job is mainly operating context – which it covers with prerequisites, revalidation and staleness rules. The remaining gap is failure/atomicity semantics for up-to-100-operation plans, which the description leaves silent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents plan, operations, confirmation_token, idempotency_key and the CEP guards in detail. The description reinforces the token requirement and the fresh-preview rule for changed targets but adds no parameter-level meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Apply a previously previewed compound edit') and scopes it to a plan that came from a prior preview, which distinguishes it from the preview/plan siblings. It does not explicitly distinguish itself from other apply_* siblings (apply_extended_edit_plan, apply_scene_review_workflow, apply_stacked_camera_edit), leaving that inference to the confirmation_token's schema note that it comes from preview_edit_plan.

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

Usage Guidelines4/5

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

Gives concrete prerequisites: the edit capability and an exact preview confirmation token, plus an explicit when-not ('changed targets require a fresh preview') and a ripple-specific condition (the reviewed sequence must be active). It stops short of naming preview_edit_plan as the required predecessor inside the description body, but the preconditions are clear enough to route correctly.

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

apply_effectApply EffectB

Apply a video effect to a clip. Experimental QE DOM catalog lookup includes an exact-name probe when enumeration is empty. A component-list readback does not verify rendered pixels.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip to apply the effect to
effect_nameYesName of the effect (e.g., 'Gaussian Blur', 'Lumetri Color')
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already establish that this is a non-read-only, non-destructive mutation, so the description does not need to restate that. It adds meaningful behavioral caveats: the QE DOM catalog lookup is experimental and uses an exact-name probe when enumeration is empty, and a component-list readback does not confirm rendered pixels. Those details go beyond the annotations and help the agent understand reliability limits.

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

Conciseness4/5

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

The description is front-loaded with the core action and then adds two short technical caveats. It is appropriately sized for the tool, though the QE DOM jargon is dense and could be clearer.

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

Completeness3/5

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

The schema is rich and the output schema exists, so return-value explanation is unnecessary. However, for a mutation tool with optional idempotency and target-verification guards, the description does not mention those safety mechanisms or explain when the optional guards should be used.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema itself carries the full burden of documenting node_id, effect_name, idempotency_key, expected_cep_target, and expected_project_path. The description adds no parameter-level meaning beyond what is already in the schema, which warrants the baseline score of 3.

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

Purpose4/5

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

The first sentence states a specific verb and resource: "Apply a video effect to a clip." It is clear enough to distinguish the tool from sibling operations such as apply_audio_effect or remove_effect, though it does not explicitly name those alternatives.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool instead of batch_apply_effect, list_available_effects, remove_effect, or other effect-related siblings. It also does not mention prerequisites such as needing a valid node_id or knowing the effect name in advance.

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

apply_extended_edit_planApply Extended Edit PlanA
Destructive

Consume a reviewed compound CEP token once and invoke only its existing typed tools with same-command project/sequence/clip/effect guards. Stops at first failed or unverified receipt, reports completed and unknown steps, and never retries or rolls back partial work. Rendering and audible synchronization remain separate evidence.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
confirmation_tokenYesSingle-use token from preview_extended_edit_plan.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the destructiveHint=true annotation, the description adds substantive behavioral detail: it stops at the first failed or unverified receipt, reports completed and unknown steps, never retries, and never rolls back partial work. That last point is exactly the information an agent needs before invoking a destructive, non-idempotent operation. It does not cover idempotency_key semantics or return payload shape in prose, and the dense phrasing ('unverified receipt') obscures some of the value.

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

Conciseness4/5

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

Three sentences, front-loaded with the core action, with no filler. It is tightly packed to the point of density, but every sentence adds a distinct behavioral fact (execution model, failure semantics, evidence boundary).

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

Completeness5/5

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

For a destructive, nested-guard tool with an output schema and full annotation coverage, the description supplies what structured fields cannot: partial-application behavior on failure, absence of rollback, and the boundary that rendering and audible synchronization are verified separately. Nothing essential to a correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, with rich nested descriptions for the guard object and the idempotency key, so the schema carries nearly the full burden. The description adds only the notion that the token is single-use and reviewed, not per-parameter meaning. Baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource: consume a reviewed compound CEP token once and invoke its existing typed tools under project/sequence/clip/effect guards. It is clearly an executor of a previously reviewed plan, which distinguishes it implicitly from preview_extended_edit_plan. It does not name the sibling explicitly, and jargon like 'compound CEP token' and 'typed tools' requires prior context.

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

Usage Guidelines3/5

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

Usage is only implied: the word 'reviewed' and 'Consume ... once' signal that a preview step must precede this call, and the schema's confirmation_token field points to preview_extended_edit_plan. There is no explicit statement of when to choose this over apply_edit_plan or other apply_* siblings, and no when-not guidance.

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

apply_lutApply LutA

Unavailable on the CEP backend: Premiere's scripting API cannot load a LUT file into Lumetri Color. Its Input LUT and Look parameters are menu indexes over a curated set of bundled looks, and writing a file path to the LUT asset parameters is accepted but not rendered (seen on Premiere Pro 25.2.3, macOS, by comparing exported frames with the same LUT applied by ffmpeg; other builds were not tested). Fails before changing the clip. Apply the LUT in Lumetri Color > Creative > Look (Browse...) instead.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
lut_pathYesFull path to the .cube or .3dl LUT file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior5/5

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

Goes far beyond the annotations (destructiveHint false, readOnlyHint false) by disclosing that the call fails before any mutation, why it fails (menu-index LUT parameters, non-rendering asset writes), the exact build tested (25.2.3 on macOS) with the verification method, and the explicit caveat that other builds were untested. This is unusually rigorous failure-mode disclosure for a mutation-flagged tool.

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

Conciseness4/5

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

Four sentences, front-loaded with the unavailability verdict, then the mechanism, then the evidence caveat, then the remediation. The parenthetical about frames compared via ffmpeg is slightly heavy but earns its place as the basis for the claim.

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

Completeness4/5

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

For a tool that can never succeed, the description supplies cause, scope of testing, non-destructiveness and a workaround; an output schema covers return values and annotations cover safety. The one omission is what failure signal the caller actually receives (error code or receipt outcome) so the agent can branch on it programmatically.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents node_id, lut_path (.cube/.3dl), idempotency_key and the CEP guards. The description adds only the incidental fact that a file path written to LUT asset parameters is accepted but not rendered, which informs why lut_path cannot work but adds no new semantics for the other parameters.

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

Purpose4/5

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

The description makes unmistakable that this tool is meant to load a LUT file into Lumetri Color and that the CEP backend cannot do it, naming the specific API parameters (Input LUT, Look) that block it. An agent immediately knows the operation and that it is unavailable, though it never explicitly contrasts with the sibling color_correct tool.

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

Usage Guidelines5/5

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

It states the operative guidance outright: this call fails before changing the clip, so do not rely on it, and the LUT must be applied manually via Lumetri Color > Creative > Look (Browse...). When-not-use plus a concrete alternative is exactly what the dimension asks for.

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

apply_mogrt_premiere_handoffApply Mogrt Premiere HandoffA

Import exactly one previewed MOGRT into the empty track of the explicit disposable Premiere verification sequence, then read back insertion and control descriptors. Requires explicit confirmation; no rendered-frame claim is made.

NameRequiredDescriptionDefault
preview_tokenYesOne-time token returned by preview_mogrt_premiere_handoff.
confirm_importYesMust be true to import into the explicit verification sequence.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare the safety profile (not read-only, not destructive, not open-world, not idempotent); the description adds real behavior beyond that: single-item cardinality, an empty-track precondition, a mandatory confirmation gate, a post-import descriptor readback, and an explicit negative claim ('no rendered-frame claim is made'). It omits failure behavior when the track is occupied or the sequence is missing, and says nothing about undo/recovery.

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

Conciseness5/5

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

Two sentences, zero filler, with the operation and its constraints front-loaded before the caveat. Nothing repeats the schema or the title.

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

Completeness4/5

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

An output schema exists so the readback result need not be explained, and the description covers the protocol gates (preview token, confirmation, disposable sequence) an agent needs before calling. It stops short of stating what happens when preconditions fail or whether the import is reversible, which matters for a mutating step.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including preview_token, confirm_import and the expected_cep_target guard tree is already fully documented in the schema; baseline 3 applies. The description adds only the loose gloss 'previewed' and 'explicit confirmation' without elaborating on the guard semantics or idempotency_key usage.

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

Purpose4/5

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

Specific verb and object: imports exactly one previewed MOGRT, and names the precise destination (the empty track of the explicit disposable Premiere verification sequence) plus a readback step. It implies the preview/apply pairing via 'previewed MOGRT' and distinguishes its throwaway target from a production import, but never names the sibling it replaces (import_mogrt, import_mogrt_from_library).

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

Usage Guidelines4/5

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

'explicit disposable Premiere verification sequence' and 'Requires explicit confirmation' effectively scope when this is legitimate: a sandbox verification, not real editorial work. The upstream prerequisite is only implied here (the token's origin is stated in the schema, not the description), and no sibling alternative is named for the real-import case.

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

apply_scene_review_workflowApply Scene Review WorkflowA
Destructive

Consume approved source-scene preview once, create reviewed source markers and/or subclips requesting audio in a new verified bin using existing typed CEP tools. Same-command source/project guards refuse relinks or project changes. Stops on failed/unverified receipt and retains bounded partial results; no rollback or false-positive correctness claim.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
confirmation_tokenYesSingle-use preview_scene_review_workflow token.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

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

Goes beyond annotations by disclosing failure semantics: it stops on a failed or unverified receipt, retains bounded partial results, and explicitly disclaims rollback and any correctness guarantee. Annotations already cover destructiveHint=true, so the added value here is the partial-failure and no-rollback contract. It does not describe the receipt shape itself, which the output schema covers.

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

Conciseness4/5

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

Three tightly packed sentences with the primary action front-loaded, then guards, then failure contract. Dense jargon ('typed CEP tools', 'same-command source/project guards') costs a little clarity but no sentence is filler.

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

Completeness5/5

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

Given a rich input schema, an output schema, and destructive annotations, the description supplies exactly the missing pieces: the prerequisite preview, the guard behavior on relink/project mismatch, and the partial-result/no-rollback outcome. Nothing an agent needs to select or safely invoke it is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so confirmation_token, idempotency_key, expected_cep_target and expected_project_path are already fully documented in the schema. The description only alludes to the single-use token and the guard parameters; it adds no format or usage detail beyond what the schema states, so the baseline 3 applies.

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

Purpose4/5

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

States concrete verbs and resources: consume an approved source-scene preview, then create source markers and/or subclips in a new verified bin. It implicitly distinguishes itself from the read-only planning sibling by the word 'approved ... preview' feeding a mutation, though it never names preview_scene_review_workflow outright.

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

Usage Guidelines3/5

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

'Consume approved source-scene preview once' implies the prerequisite planning step and the single-use nature of the token, and the guard sentence implies when the call will refuse. However, no sibling is named as the alternative and there is no explicit 'do not call before X' or 'use instead when Y' guidance.

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

apply_spot_workflow_planApply Spot Workflow PlanA

Apply one exact previewed motion-demo, product-spot, or brand-spot plan. Requires edit authority, requires filesystem authority for a MOGRT, and only targets empty explicitly named tracks. Host readback is not playback or render verification.

NameRequiredDescriptionDefault
planYesExact plan returned by a preview_*_spot tool
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
confirmation_tokenYesExact token returned by the corresponding preview tool.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations cover mutation safety (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds genuinely new behavioral context: authority requirements, the empty-explicit-track precondition, and the caveat that host readback is not playback or render verification. That last point is valuable expectation-setting the annotations cannot convey. It stops short of describing failure modes or what the receipt contains.

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

Conciseness5/5

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

Two sentences with no filler. The action and its input source come first, then the operational constraints and the readback caveat, which is the right priority order for a mutation tool.

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

Completeness4/5

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

For a nested-schema, mutation tool with an output schema, the description supplies the non-obvious essentials: authority model, target-track precondition, and the verification caveat. The remaining gaps (rollback behavior, what the receipt reports on partial application) are secondary given annotations and an output schema are present.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are fully self-documenting and the baseline of 3 applies. The description only reinforces that the plan must be the exact previewed artifact and that a confirmation token is required, adding no new detail on the idempotency key, expected_cep_target, or expected_project_path guards.

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

Purpose5/5

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

Specific verb ('Apply') plus a precisely scoped resource ('one exact previewed motion-demo, product-spot, or brand-spot plan'), which maps directly onto the preview_motion_graphics_demo / preview_product_spot / preview_brand_spot siblings that produce such plans. An agent can distinguish this from the preview tools and from the generic apply_edit_plan without opening a schema.

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

Usage Guidelines4/5

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

Usage is clearly implied and constrained: the plan must be one previously previewed, and the tool only targets 'empty explicitly named tracks', which tells the agent when the call will be rejected. Authorization prerequisites (edit authority, filesystem authority for a MOGRT) are stated. What is missing is an explicit statement of when not to use it or a named alternative for non-empty tracks or un-previewed plans.

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

apply_stacked_camera_editApply Stacked Camera EditA
Destructive

Apply one single-use reviewed ordinary stacked-camera plan to a newly cloned sequence. Reads actual track locks, linked partners, source identity, forward1x speed and nest/reverse state before clone and before writes; unavailable getters refuse. Verifies exact enabled states and master-audio ranges. Sequential partial completion is reported; no rollback or audible sync claim.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
confirmation_tokenYesSingle-use token returned by preview_stacked_camera_edit.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

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

Adds real behavioral context beyond the annotations: precondition reads (track locks, linked partners, source identity, forward1x speed, nest/reverse state) happen before clone and before writes, unavailable getters cause refusal rather than proceeding, post-write verification of enabled states and master-audio ranges, and explicit disclosure that partial sequential completion is reported with no rollback and no audible sync guarantee. That is a strong fail-closed and failure-mode disclosure for a destructive write.

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

Conciseness4/5

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

Front-loaded with the action and target, then layered guard/failure semantics in short clauses. It is dense with domain jargon and packs several ideas per clause, but essentially every sentence carries behavioral information rather than restating the name.

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

Completeness4/5

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

For a destructive mutation with nested identity guards and an output schema, the description covers preconditions, refusal behavior, verification, partial-failure semantics and the absence of rollback. What remains (exact clone behavior, return payload shape) is either implied or handled by the output schema, so coverage is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (confirmation_token, idempotency_key, expected_cep_target, expected_project_path) is already fully documented in the schema, including idempotency retry semantics. The description mentions the single-use reviewed plan but adds no syntax or usage detail beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('apply ... reviewed ... stacked-camera plan to a newly cloned sequence'), which distinguishes it from the sibling preview_stacked_camera_edit and from generic appliers like apply_edit_plan. The phrase 'single-use reviewed ordinary' conveys the lifecycle constraint clearly enough for an agent to know this executes rather than previews.

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

Usage Guidelines3/5

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

The description implies the tool is the execution step for a plan that has already been reviewed and previewed (single-use, confirmation_token from preview), and it notes the partial-completion outcome. It never states exclusions or names the alternative explicitly, so the routing to preview_stacked_camera_edit is left largely to the schema.

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

attach_custom_propertyAttach Custom PropertyB

Attach a custom property (key/value pair) to the active sequence and confirm it against the sequence project item's XMP packet. Reports failure when the property never lands in XMP.

NameRequiredDescriptionDefault
property_idYesUnique identifier for the custom property
property_valueYesValue for the custom property
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare that this is a non-read-only, non-destructive mutation. The description adds useful behavioral detail by saying it confirms the property in XMP and reports failure when it never lands, but it does not clarify overwrite/merge behavior, permissions, or side effects for existing properties.

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

Conciseness5/5

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

The definition is two tight sentences with the primary action front-loaded and the verification/failure behavior following immediately. There is no wasted language or restatement of schema details.

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

Completeness4/5

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

Given the rich nested schema, complete parameter descriptions, annotations, and output schema, the description covers the core operation and an important failure mode. It omits optional guard and idempotency context, but those are handled by the schema, so the description is largely complete for invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so parameter documentation is already carried by the schema. The description reinforces the key/value nature of property_id and property_value, but it does not add meaning for idempotency_key, expected_cep_target, or expected_project_path, so the baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: attach a custom property key/value pair to the active sequence, with confirmation against the sequence project item's XMP packet. It is clear, but it does not explicitly distinguish this from nearby siblings such as add_custom_metadata_field or set_xmp_metadata.

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

Usage Guidelines2/5

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

The description explains what the tool does but gives no explicit guidance on when to use it versus alternatives. With many metadata/XMP-related siblings, the absence of routing guidance is a meaningful gap.

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

audit_project_structureAudit Project StructureA

Audit the Project panel against explicit layout rules (allowed root names, extension-to-bin placement, a sequences bin, maximum bin depth, empty bins) and report violations by node ID. Read-only by default (inspect authority): walks up to 5000 items, reports truncation, and returns at most 200 proposed moves plus a plan_token bound to the project, rules, and those exact moves. With apply: true (edit authority) it requires that plan_token, re-reads the project and refuses if the plan changed, the walk was truncated, or any target path is ambiguous (two bins with one name at a level). It then creates missing target bins and moves only the planned items, reading back each item's parent bin; outcome is verified only when every move is verified, otherwise partial or failed with per-item details. It never deletes, renames, or moves bins; root-name, depth, and empty-bin findings are report-only.

NameRequiredDescriptionDefault
applyNofalse (default) audits without changing Premiere. true creates missing target bins and moves the planned items; requires plan_token and the edit capability.
rulesYesLayout rules; at least one must be set. Unknown keys are rejected.
plan_tokenNoRequired when apply is true: the planToken returned by the audit with the same rules. Apply refuses if the project's current plan no longer matches it.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

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

The description adds substantial behavior beyond the annotations: the 5000-item walk, truncation reporting, 200-move cap, plan_token binding, re-read and refusal conditions, creation of missing target bins, read-back verification, and partial/failed outcomes. It also explicitly says it never deletes, renames, or moves bins and that some findings are report-only.

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

Conciseness5/5

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

Purpose and scope are front-loaded, then the default read-only path and the guarded apply path follow in logical order. Although dense, every clause conveys an operational constraint needed for safe invocation, with no boilerplate.

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

Completeness5/5

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

Given a complex audit-and-optional-mutation tool with nested rules, annotations, and an output schema, the description covers the decision points, safety behavior, limits, and failure handling an agent needs. Return-value details can be left to the output schema.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents apply, rules, plan_token, idempotency_key, and expected identity guards in detail. The prose reinforces plan_token binding and apply requirements but provides limited parameter-level meaning beyond the schema.

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

Purpose5/5

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

The description gives a specific verb and resource: auditing the Project panel against named layout rules and reporting violations by node ID. It distinguishes itself from sibling project-listing and bin-manipulation tools by being a rules-based audit/plan/apply operation.

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

Usage Guidelines4/5

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

It clearly explains the two modes: read-only audit by default, and apply:true only with a plan_token and edit authority. It states refusal conditions and report-only findings, but it does not explicitly route the agent to sibling alternatives such as move_item_to_bin or create_bin for manual edits.

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

audit_timeline_healthAudit Timeline HealthA
Read-onlyIdempotent

Audit one sequence snapshot for flash frames, gaps, overlaps, disabled clips, repeated shots, video without audio, extreme speed, invalid times, empty tracks, leading black, and trailing gaps; returns a 0..100 score, findings with timecodes, and fix routes. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
snapshotYesSequence snapshot to audit.
frame_rateNoFrame rate override for frame math and timecodes (1..240). Defaults to the snapshot frame rate or 30.
gap_min_framesNoMinimum gap length in frames to report (default 1).
max_speed_percentNoAbsolute speed above this percentage is flagged (default 400).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_frame_rateNoOptional expected frame rate; a mismatch is an error.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
flash_frame_max_framesNoClips lasting this many frames or fewer are flagged as flash frames (default 3).
expected_duration_secondsNoOptional target duration; clips past it and trailing gaps before it are flagged.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety bar is lower. The description nonetheless adds real value by disclosing the output contract (0..100 score, findings with timecodes, proposed fix routes) and reasserting that nothing in Premiere is mutated. It stops short of explaining what the returned 'fix routes' are or how the score is weighted.

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

Conciseness4/5

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

Front-loaded with the verb and scope, then a compact defect inventory, then a one-clause safety note. The long enumeration costs some density but each item corresponds to a distinct finding class the agent will receive, so it largely earns its place.

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

Completeness3/5

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

With 9 parameters, a deeply nested snapshot schema and an existing output schema, the description covers purpose and outputs adequately. However, it never says how an agent should obtain or normalize the required snapshot (get_sequence_structure / inspect_timeline_snapshot) nor references the threshold parameters, leaving a real gap for a required complex object input.

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

Parameters3/5

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

Schema description coverage is 100% with 9 richly documented parameters, so the baseline is 3. The description hints at the tunable thresholds ('flash frames', 'extreme speed', 'trailing gaps') but never maps them to gap_min_frames, flash_frame_max_frames, max_speed_percent or expected_duration_seconds, so it adds little beyond the schema.

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

Purpose4/5

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

States a specific verb and object ('Audit one sequence snapshot') and enumerates the exact defect classes it detects (flash frames, gaps, overlaps, disabled clips, repeated shots, etc.), so the agent knows precisely what the tool returns. It also implicitly separates itself from live-host tools via 'Local-only; never changes Premiere,' but never names a sibling such as get_timeline_gaps or inspect_edit_readiness, which would have made differentiation airtight.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is a pre-flight QC pass on an already-captured snapshot. There is no explicit 'use this when X, use get_timeline_gaps/review_report instead when Y' statement, and no prerequisites (e.g. where to obtain the snapshot) are given.

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

auto_reframe_sequenceAuto Reframe SequenceB

Auto-reframe a sequence into a new sequence of target_width x target_height. Premiere derives the new sequence from the source height (a 1080p source at 9:16 comes out 607x1080), so the tool then sets the requested frame size and verifies it; the Auto Reframe effect refits to the new size.

NameRequiredDescriptionDefault
new_nameNoName for the newly created auto-reframed sequence
sequence_idNoSequence name or ID to reframe. Uses active sequence if omitted.
target_widthYesTarget frame width in pixels
motion_presetNoPremiere Auto Reframe motion preset (default: default)
target_heightYesTarget frame height in pixels
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
use_nested_sequencesNoWhether Auto Reframe should honor nested sequences (default: false)
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent, closed-world, so the safety profile is covered. The description adds genuine value by disclosing the derived-size quirk (1080p at 9:16 yields 607x1080) and that the tool re-sets and verifies the requested size afterwards — behavior an agent could not infer. It stops short of saying where the new sequence is created or what happens if the effect is unavailable.

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

Conciseness4/5

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

Two sentences, front-loaded with the verb and result, and the second sentence earns its length by explaining the two-step derive-then-resize workflow. Slightly dense packing of the parenthetical example, but no filler.

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

Completeness4/5

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

With an output schema present and annotations covering the safety profile, the description need not explain return values. It is complete on core mechanics for a 9-parameter mutating tool, though it omits where the new sequence lands and that the idempotency/CEP guards exist (deferred entirely to the schema).

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

Parameters3/5

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

Schema coverage is 100%, so all nine parameters are already documented, including the idempotency key and CEP guard objects. The description clarifies that target_width/target_height are the enforced final size rather than what Premiere initially derives, which is real added meaning, but it says nothing about new_name, motion_preset, use_nested_sequences, or the guard params — baseline 3 holds.

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

Purpose4/5

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

States a specific verb and resource ('Auto-reframe a sequence') and clarifies the output is a brand-new sequence at target_width x target_height, which separates it from in-place tools like set_sequence_resolution. It never names a sibling alternative explicitly, so the differentiation is implied rather than routed.

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

Usage Guidelines2/5

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

The description explains what happens but never when to choose this over set_sequence_resolution, create_sequence_from_preset, or the planning-only reframe siblings. No prerequisites (active sequence requirement, saved project, CEP backend guard) appear in the description; those live only in the schema.

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

batch_add_transitionsBatch Add TransitionsA
Destructive

EXPERIMENTAL (undocumented QE DOM): Add the same video transition at each eligible cut point on a track and report per-cut readback.

NameRequiredDescriptionDefault
track_indexNoVideo track index (0-based, default: 0)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
transition_nameYesName of the transition (e.g., 'Cross Dissolve')
duration_secondsNoDuration of each transition in seconds (default: 1.0)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructive=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is covered. The description adds useful context beyond annotations by flagging the tool as EXPERIMENTAL, undocumented QE DOM, and by promising per-cut readback, though it omits partial-failure, eligibility, and undo behavior.

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

Conciseness5/5

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

It is a single, front-loaded sentence that leads with the EXPERIMENTAL warning and then states the operation and output. There is no wasted wording.

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

Completeness4/5

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

An output schema exists and all parameters are fully described, so return values and parameter details need not be repeated. Given the annotations, the description is nearly complete, but a destructive batch tool of this complexity could benefit from one sentence on eligibility and failure handling.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already carries the parameter burden. The description only loosely implies transition_name and track usage and adds no syntax, defaults, or constraints beyond what the schema documents.

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

Purpose5/5

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

The description states a specific verb and resource: add the same video transition at each eligible cut point on a track, with per-cut readback. The batch and per-cut scope distinguishes it from single-transition siblings such as add_transition and add_transition_to_clip.

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

Usage Guidelines3/5

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

The batch scope implies when the tool is useful, but the description never explicitly says when to choose it over add_transition or add_transition_to_clip, nor does it state prerequisites, exclusions, 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.

batch_apply_effectBatch Apply EffectA
Destructive

Apply one audio or video effect to compatible selected clips, a compatible track, or all compatible clips. Every target is preflighted and then checked by component-count readback.

NameRequiredDescriptionDefault
targetYesWhich clips to apply to: selected clips, all on a track, or all in sequence
track_typeNoTrack type (required when target is 'track')
effect_nameYesDisplay name of the effect to apply (e.g., 'Gaussian Blur', 'Lumetri Color')
track_indexNoTrack index (required when target is 'track')
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false. The description adds genuinely new behavior: preflight validation of every target plus post-hoc verification by component-count readback, which tells the agent the operation is guarded and self-checking. It stops short of saying what happens to incompatible targets (skipped, error, or partial application).

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

Conciseness5/5

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

Two sentences, zero filler. The scope enumeration comes first and the preflight/readback guarantee second, so the most decision-relevant information is front-loaded.

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

Completeness4/5

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

With an output schema present and 100% parameter coverage, the description only needs to orient the agent, which it does by naming targets and the preflight/verification model. It omits whether the effect name must come from list_available_effects and whether partial success is reported, but these are modest gaps given the rich structured data.

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

Parameters3/5

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

Schema description coverage is 100%, including full documentation of idempotency_key, expected_cep_target, and expected_project_path, so the schema carries the heavy lifting. The description adds only the qualifier 'compatible', hinting the effect must match clip media type, without expanding on any parameter. Baseline 3 is appropriate.

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

Purpose4/5

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

The description gives a specific verb and resource ('Apply one audio or video effect') plus explicit scope options ('selected clips, a compatible track, or all compatible clips'), which matches the target enum. It does not name the single-clip siblings apply_effect/apply_audio_effect that it competes with, so the batch-vs-single distinction is left implicit in the word 'batch'.

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

Usage Guidelines3/5

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

The three target modes imply when this tool is appropriate (multi-clip operations), but there is no explicit statement telling the agent to prefer apply_effect for a single known clip, or to use list_available_effects first to resolve an effect name. Usage is inferable rather than stated.

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

batch_enable_disableBatch Enable DisableB
Destructive

Enable or disable multiple clips at once (selected, track, or all).

NameRequiredDescriptionDefault
targetYesWhich clips to affect
enabledYestrue to enable, false to disable
track_typeNoTrack type (required when target is 'track')
track_indexNoTrack index (required when target is 'track')
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, and the description adds nothing beyond that: no mention of what disabling does to sequence output, whether the batch is atomic or partially applied on error, or that the edit is undoable. It also never explains the idempotency_key/expected_cep_target/expected_project_path guards, which are the main behavioral nuance of this tool.

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

Conciseness5/5

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

A single short sentence with the scope constraint front-loaded and zero filler. Nothing could be removed without losing meaning.

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

Completeness2/5

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

For a destructive batch mutation with 7 parameters, nested CEP identity guards, and a long idempotency contract, one sentence is far too thin. The output schema covers return values, but the description leaves the guard parameters, batch failure semantics, and interaction with track targeting entirely to the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including the nested identity guards is already documented in the schema; baseline 3 applies. The description's '(selected, track, or all)' merely echoes the target enum values rather than adding semantics like whether track_type/track_index become mandatory in track mode (that is only in the schema).

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

Purpose4/5

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

States a specific verb pair (enable/disable) plus resource (clips) and batch scope, with the target universe spelled out in parentheses. It implicitly contrasts with the single-clip sibling enable_disable_clip via 'multiple clips at once', but never names that sibling, so the differentiation is left to inference.

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

Usage Guidelines3/5

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

The parenthetical '(selected, track, or all)' hints at when each mode applies, but there is no explicit guidance on choosing this tool over enable_disable_clip or on preconditions such as an active sequence being required. Usage 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.

batch_rename_clipsBatch Rename ClipsB
Destructive

Rename multiple clips on the timeline using a pattern. Supports sequential numbering.

NameRequiredDescriptionDefault
patternYesName pattern. Use {n} for a sequential number, ## for a zero-padded two-digit sequence number, and {name} for the original name (e.g., 'Scene_##', '{name}_v2')
track_typeYesTrack type to rename clips on
track_indexYesTrack index (0-based)
start_numberNoStarting number for {n} placeholder (default: 1)
selected_onlyNoOnly rename selected clips (default: false, renames all on track)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already disclose that the tool is destructive, not read-only, and not idempotent. The description adds no behavioral context beyond that, such as overwriting existing names, renaming all clips on a track by default, undo behavior, or the role of idempotency and expected-identity guards.

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

Conciseness5/5

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

The description is two short, front-loaded sentences with no wasted wording. The core action is stated immediately, and the sequential-numbering capability is appended concisely.

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

Completeness3/5

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

The schema is fully described, nested guard parameters are documented, annotations cover safety, and an output schema exists. However, for a destructive batch mutation with identity guards and an idempotency key, the description is still thin on operational context and usage conditions.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well documented. The description mentions patterns and sequential numbering, but this duplicates the schema rather than adding meaning beyond it, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a clear verb and resource: rename multiple clips on the timeline using a pattern. It implicitly distinguishes batch timeline-clip renaming from single-clip, project-item, bin, or track renaming, but it does not explicitly name the alternative sibling tools.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus rename_clip, rename_project_item, select_clips_by_pattern, or other batch operations. It also does not mention prerequisites, the default all-clips-on-track scope, or when selected_only should be used.

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

bind_media_provenanceBind Media ProvenanceC
Read-onlyIdempotent

Bind approved source/proxy content hashes and original availability to an analysis provider and timeline revision. Proxy flags do not prove delivery provider; caller-evidenced full-resolution export remains distinct from artifact validation.

NameRequiredDescriptionDefault
provenanceYesStrict provenance: source_id, source_sha256/null, proxy_sha256/null, original_offline, proxy_attached, analysis_provider original/proxy, snapshot_revision, export_provider_verified.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds domain semantics about proxy flags and the distinction between caller-evidenced export and artifact validation, but it does not say whether the binding persists state, whether it validates the provenance object against project state, or what failure means -- and the guard behavior lives only in the schema property text.

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

Conciseness4/5

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

Two sentences with no filler, and the action statement is front-loaded before the caveat. The second sentence is dense and slightly cryptic, but every clause carries meaning.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations plus full schema coverage handle safety and parameters. However, for a tool whose name and description both hinge on the undefined concept of 'binding', the description leaves an agent unable to predict whether the call mutates state or merely records/validates provenance.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (including the nested CEP guard fields) is already documented in the schema, which sets the baseline at 3. The description loosely enumerates the provenance concepts (hashes, original availability, analysis provider, timeline revision), confirming what the required object carries, but adds no syntax, null-handling, or precondition detail beyond the schema.

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

Purpose3/5

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

The description names a specific verb and object (bind source/proxy content hashes and availability to an analysis provider and timeline revision), but the framing is jargon-heavy and leaves unclear what a 'binding' actually is (a stored record? a validation?). It never distinguishes itself from nearby tools such as verify_delivery_file, verify_temporal_render_artifact, has_proxy, or manage_proxies.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool, what preconditions must hold (approved hashes, reviewed timeline revision), or which sibling to use for adjacent tasks like delivery verification or proxy checks. The second sentence articulates an important semantic distinction (proxy flags do not prove delivery provider), but that is a caveat rather than selection guidance.

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

build_caption_artifactBuild Caption ArtifactA

Build a CapCut/Submagic-style SRT or VTT caption artifact from a caller-supplied word timeline: balanced word groups, sentence-aware breaks, min/max cue durations, optional karaoke word timestamps (VTT), emphasis and speaker markup. Local-only; returns the artifact inline or writes it inside an approved workspace and never changes Premiere.

NameRequiredDescriptionDefault
formatYesArtifact format. SRT uses HH:MM:SS,mmm; VTT starts with WEBVTT and uses HH:MM:SS.mmm.
karaokeNoVTT only: emit per-word <HH:MM:SS.mmm> timestamps inside each cue for word-highlight styles. Errors for SRT.
max_linesNoMaximum lines of plain caption text per cue (default 1); markup does not add lines.
uppercaseNoRender caption text in upper case.
output_pathNoOptional absolute file path to write the artifact to. Requires approved_workspace_path; the file must not already exist. When omitted the artifact text is returned inline (up to 512 KiB).
style_presetNoStyle descriptor to return with the artifact (default clean). Documentation only; not encoded in SRT/VTT.
strip_fillersNoTokens removed from the caption text (case-insensitive, punctuation ignored).
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
words_per_cueNoTarget words per cue (default 4); sentences are split into balanced groups of at most this many words.
emphasis_wordsNoWords wrapped in <b> (SRT) or <c.emphasis> (VTT).
speaker_prefixNoPrefix cues with the speaker label when present: 'Speaker: ' in SRT, <v Speaker> in VTT.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
max_cue_secondsNoMaximum cue duration (default 5).
min_cue_secondsNoMinimum cue duration (default 0.5); short cues are extended but never past the next cue start.
merge_gap_secondsNoExtend a cue to the next cue start when the gap is smaller than this (default 0.3) so captions do not flicker.
max_chars_per_lineNoMaximum characters per line of plain caption text (default 32); words are never split. Wrapping counts unescaped words only, so VTT escaping, karaoke timestamps, emphasis tags, and speaker prefixes can make the rendered line longer.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathNoAbsolute existing directory that must contain output_path (checked via realpath of the parent directory). Required with output_path.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations mark this as non-read-only but non-destructive, and the description supplies the missing context: it is local-only, never touches Premiere, and either returns text inline or writes to an approved workspace. That materially clarifies the blast radius. It stays silent on idempotency behavior and overwrite rules, which live only in 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.

Conciseness4/5

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

Two sentences, front-loaded with the action and output type, no filler. The second sentence is a dense feature list, which is informative but reads compressed rather than structured.

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

Completeness4/5

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

Given 19 parameters, nested objects, and an output schema, the description covers purpose, output modes, and side effects adequately. It omits the idempotency and CEP-guard semantics needed for retry-safety, but those are documented in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameter meanings are already fully documented, and the description largely restates them (word groups, min/max cue durations, karaoke, emphasis, speaker markup). It adds no syntax or format detail beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (build) plus resource (SRT/VTT caption artifact), and names the input source (caller-supplied word timeline) and feature set (word groups, karaoke, emphasis, speaker markup). This clearly separates it from siblings such as retime_caption_file or read_sequence_captions.

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

Usage Guidelines3/5

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

The description establishes scope ('Local-only ... never changes Premiere') and the precondition of a caller-supplied word timeline, which implies when to use it. However, it never names an alternative tool or an explicit when-not condition, so the agent must infer routing against the many caption-adjacent siblings.

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

build_edit_review_evidenceBuild Edit Review EvidenceA

Create new before/after contact sheets, optional bounded MP4 excerpts, and checksum receipts from two reviewed rendered videos. Supports visual review of cuts, transitions, titles and masks; still grids do not verify temporal behavior or authenticate host lineage.

NameRequiredDescriptionDefault
after_sheetYesNew after .png contact-sheet destination.
after_videoYesExisting rendered video captured after the edit.
before_sheetYesNew before .png contact-sheet destination.
before_videoYesExisting rendered video captured before the edit.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
after_review_clipNoOptional distinct new absolute after .mp4 excerpt destination; requires before_review_clip.
before_review_clipNoOptional new absolute before .mp4 excerpt destination; requires after_review_clip.
operation_revisionYesReviewed operation/snapshot revision that this evidence accompanies; declared, not host-authenticated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
review_start_secondsNoOutput-relative excerpt start, default zero.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
review_duration_secondsNoBounded review excerpt duration, default three seconds.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, and idempotentHint=false, so the safety profile is largely covered. The description adds useful behavioral context beyond annotations: it creates new contact sheets, optional bounded MP4 excerpts, and checksum receipts, and it explicitly warns that still grids do not verify temporal behavior or authenticate host lineage.

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

Conciseness5/5

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

The description is two tightly constructed sentences with no filler, and the core output and key limitation are front-loaded. Every clause adds useful information for an agent deciding whether and how to call the tool.

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

Completeness4/5

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

Given a 12-parameter tool with nested objects, 100% schema description coverage, and an output schema, the description provides a sufficient high-level summary of what the tool does and what it cannot do. It could be slightly more complete by explicitly routing temporal or lineage verification to an alternative, but the essential calling context is present.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already carries detailed parameter meaning. The description reinforces the core before/after video and sheet concepts and the optional bounded excerpts, but it does not add substantive semantics for parameters such as operation_revision, expected_cep_target, idempotency_key, or review timing beyond what the schema provides.

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

Purpose4/5

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

The description states a specific verb (Create) and concrete resources: before/after contact sheets, optional bounded MP4 excerpts, and checksum receipts from two reviewed rendered videos. It is clear what the tool produces, though it does not explicitly differentiate itself from nearby tools such as generate_media_contact_sheet or verify_temporal_render_artifact.

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

Usage Guidelines3/5

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

The description gives implied usage context by saying it supports visual review of cuts, transitions, titles, and masks, and it notes that still grids do not verify temporal behavior or authenticate host lineage. However, it does not explicitly say when to choose this tool over alternatives or name any sibling tool as the alternative for temporal verification or lineage authentication.

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

build_project_handoff_manifestBuild Project Handoff ManifestA
Read-onlyIdempotent

Inspect explicitly listed dependencies inside an approved consolidated workspace. Reports observed bytes, missing files, expected source identity and unresolved nests/image sequences/AE/template dependencies. A copied project alone cannot pass completeness.

NameRequiredDescriptionDefault
dependenciesYesExpected dependencies, at most500.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
inventory_completeYesWhether upstream dependency enumeration is complete, including nested/external sources.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathYesExisting absolute approved root; symlink escapes reject.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, idempotentHint=true and openWorldHint=false, and the description usefully resolves the ambiguity of the verb 'build' by making clear this is an inspection that reports findings (observed bytes, missing files, unresolved nested/precomp dependencies) rather than writes an artifact. It also discloses a meaningful policy: completeness cannot be satisfied by a copied project alone. It stops short of saying whether missing files abort the call or are returned in the report, and says nothing about permissions on the approved workspace.

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

Conciseness4/5

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

Three short sentences, front-loaded with the action and scope, with zero boilerplate. The closing sentence ('A copied project alone cannot pass completeness') is compact but slightly cryptic in isolation, costing a point of crispness.

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

Completeness3/5

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

With an output schema present, return values need no explanation, and the 100%-covered input schema carries the guard and idempotency detail. Still, for a 6-parameter tool with nested objects sitting in a consolidation-to-handoff workflow, the description never states the ordering prerequisite (a completed consolidation and a complete upstream enumeration) or how inventory_complete=false is treated, leaving an agent to reconstruct the workflow from schema prose.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents approved_workspace_path, dependencies, inventory_complete, and the CEP/idempotency guards in depth; baseline is 3. The description reinforces two of them ('explicitly listed dependencies', 'approved consolidated workspace') but adds no semantics for inventory_complete or the expected_cep_target/expected_project_path guards beyond what the schema states.

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

Purpose4/5

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

The description names a specific action and resource: inspect an explicitly listed dependency set inside an approved consolidated workspace and report observed bytes, missing files, expected source identity, and unresolved nests/image sequences/AE/template deps. That is far more precise than the name alone (which misleadingly suggests producing an artifact). It does not, however, distinguish itself from adjacent audit-style siblings such as inspect_edit_readiness, validate_project_for_export, or consolidate_and_transfer.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the workspace must be 'approved' and 'consolidated', and the closing line warns 'a copied project alone cannot pass completeness', which hints at a when-not condition. There is no explicit 'use this when…' clause and no sibling is named as the alternative for simple integrity checks, so the agent must infer placement in the handoff workflow.

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

cancel_workflow_jobCancel Workflow JobA

Request cancellation of an owned local process or undispatched local job. Native Premiere/AME cancellation is unsupported; no queue is cleared and no output file is deleted.

NameRequiredDescriptionDefault
job_idYesExact tracked job ID; missing receipts never imply completion.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

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

Annotations declare a non-readonly but non-destructive mutation, and the description reinforces that with 'no queue is cleared and no output file is deleted' — a genuinely useful disclosure of blast radius. The word 'Request' signals cooperative/asynchronous cancellation, which annotations do not convey. It omits what happens to a job that is already dispatched, minor given 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.

Conciseness5/5

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

Two sentences, each carrying load: the first defines the operation and its scope, the second prevents misuse. Nothing is repeated from the schema or annotations.

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

Completeness4/5

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

With an output schema present and full parameter documentation, the description only needs to frame the operation and its limits, which it does. The one gap an agent might want is what a cancelled-but-racing job reports back, which is left to the output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so job_id, idempotency_key, and the two expected_* guards are fully documented in the schema; the description adds no parameter-level detail. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb-plus-object ('Request cancellation of an owned local process or undispatched local job') and delimits the scope to local jobs, which separates it from the neighbouring inspect_workflow_job and wait_workflow_job. It does not name those siblings, so differentiation is inferred rather than stated.

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

Usage Guidelines4/5

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

Gives concrete when-not conditions: native Premiere/AME cancellation is unsupported, no queue is cleared, no output file is deleted. That steers an agent away from using this for host-side render cancellation. It stops short of naming the right tool for the unsupported cases.

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

can_executeCan ExecuteA
Read-onlyIdempotent

Validate an exact tool invocation, authority, live backend and bounded CEP targets without applying it. Returns named refusal/unknown reasons and evidence age; preflight is advisory and must be revalidated at dispatch.

NameRequiredDescriptionDefault
argumentsYesExact proposed tool arguments; validated against that tool's schema.
tool_nameYesRegistered tool to preflight.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_sequence_idNoExpected CEP active sequence ID, never a synthetic snapshot ID.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive, so the description correctly spends its words on what annotations cannot say: that results include named refusal/unknown reasons and evidence age, and that the verdict is time-sensitive and must be revalidated. It does not explain what an 'unknown' verdict means operationally or how stale evidence can get before it is untrustworthy.

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

Conciseness5/5

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

Two dense sentences, front-loaded with the action and scope, then the return shape, then the advisory caveat. No boilerplate and no restatement of the title.

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

Completeness4/5

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

With an output schema present and full parameter documentation, the description covers the remaining gaps well: it is read-only, returns structured verdicts, and is advisory only. A small gap remains around what the agent should do on a refusal versus an unknown, and around authority prerequisites, but the essentials for correct invocation are there.

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

Parameters3/5

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

Schema description coverage is 100%, so tool_name, arguments, expected_cep_target, expected_sequence_id and expected_project_path are all fully documented in structured fields. The description only gestures at them collectively ('authority, live backend and bounded CEP targets') and adds no syntax, precedence, or interaction guidance beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

Uses a specific verb (validate/preflight) on a specific resource (an exact tool invocation with arguments), and adds scope covering authority, live backend, and CEP targets. 'Without applying it' makes the non-mutating nature unambiguous. It doesn't name a sibling to contrast with, but no sibling in the list performs preflight validation, so differentiation is implicit rather than stated.

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

Usage Guidelines4/5

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

'Preflight is advisory and must be revalidated at dispatch' tells the agent both when this is appropriate (before acting) and its limitation (not a guarantee). It stops short of explicit when-not guidance, e.g. that local-only tools skip Premiere inspection or that CEP-only guards are refused on UXP, which only appears buried in the schema.

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

capture_frameCapture FrameA

Capture the current frame and return it as inline image data for the LLM to see. This supports still-image review only. The PNG keeps the sequence's transparency (hasAlpha); transparent areas may display as white or a checkerboard rather than the black a video render shows.

NameRequiredDescriptionDefault
time_secondsNoTime position in seconds to capture. Uses current playhead if omitted.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare the generic flag set; the description adds genuinely useful behavior not present in any structured field: the output is an inline PNG that preserves sequence alpha, and transparent regions may render as white/checkerboard rather than black. That prevents a misread of the returned image. It does not address whether capture touches app state, which is notable given readOnlyHint=false.

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

Conciseness4/5

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

Three sentences, output contract front-loaded, no filler. The middle sentence ("still-image review only") is slightly redundant with the first and somewhat vague, which keeps it off a 5.

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

Completeness4/5

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

An output schema exists and the description still usefully explains the PNG's alpha behavior; annotations and a fully documented schema cover the guard parameters. What is missing is any hint that time_seconds is optional and defaults to the playhead, but that gap is small given the schema richness.

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

Parameters3/5

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

Schema coverage is 100%, including detailed prose for time_seconds and the expected_cep_target/idempotency_key guards, so the schema does the heavy lifting. The description adds nothing about parameters — notably it never says the capture defaults to the playhead or can target an arbitrary time_seconds. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource (capture the current frame) and adds that the result is returned as inline image data, which implicitly separates it from the file-writing export_frame sibling. It stops short of naming that sibling, so the differentiator must be inferred.

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

Usage Guidelines3/5

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

"This supports still-image review only" gives an implied scope, but there is no explicit when-to-use versus export_frame/export_sequence_review_frames, and no stated prerequisites or exclusions. The agent can guess the intent but must confirm against siblings.

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

check_caption_safe_zoneCheck Caption Safe ZoneA
Read-onlyIdempotent

Check caption, title, logo, and graphic rectangles against approximate platform UI overlay zones (TikTok, Reels, Shorts, feed, YouTube, LinkedIn, X) and suggest the nearest clear position. Local-only geometry on caller-supplied normalized rects; it never reads or changes Premiere.

NameRequiredDescriptionDefault
frameYesOutput frame size in pixels; used for orientation checks and pixel readback.
elementsYesOn-screen rectangles normalized to the frame (0..1), with x,y at the top-left corner.
platformYesTarget platform whose UI overlays are checked.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description still adds meaningful context beyond that: zones are 'approximate' (an accuracy caveat), the tool only suggests rather than applies a position, and it explicitly never touches Premiere — a real behavioral claim, not a restatement of hints.

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

Conciseness5/5

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

Two sentences, front-loaded with the action and scope, followed by the execution model and side-effect disclaimer. Every clause carries information an agent needs; nothing is padding.

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

Completeness4/5

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

With an output schema present and full annotations, the description needn't explain return values, and it does supply the key caveats (approximate zones, local-only, no Premiere access). Minor gap: it doesn't hint at tolerance/severity semantics or element-count limits, though those live in the schema.

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

Parameters3/5

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

Schema description coverage is 100% and the nested frame/elements/platform structure is fully documented in-schema, so baseline 3 applies. The description reinforces that rects are caller-supplied and normalized, and lists the platform set that mirrors the enum, but adds no format or constraint detail beyond the schema.

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

Purpose5/5

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

States a specific verb (check), specific resources (caption, title, logo, graphic rectangles), the comparison target (approximate platform UI overlay zones) and a secondary action (suggest the nearest clear position). The enumerated platform list makes the scope unambiguous and no sibling tool performs this geometry check.

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

Usage Guidelines4/5

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

The clause 'Local-only geometry on caller-supplied normalized rects; it never reads or changes Premiere' clearly delimits when this applies: pre-placement planning with rects already in hand, not timeline inspection. No explicit alternative is named (e.g. plan_platform_delivery_matrix or get_caption_style_guidance), so routing to siblings 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.

check_offline_mediaCheck Offline MediaB
Read-onlyIdempotent

Check for offline (missing) media in the project

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds only the synonym "missing" for offline; it does not disclose scan scope, whether the check is on-disk or on offline flags, cost/time for large projects, or whether proxy-only media counts as online.

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

Conciseness4/5

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

A single tight sentence with the resource and qualifier front-loaded and no wasted words. It is efficient but so brief that the missing routing information makes it feel under-specified rather than genuinely concise.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and annotations carry the read-only profile; the two optional guard params are fully documented in schema. The remaining gap is scope (project vs sequence) and the overlap with get_offline_media, which the description should resolve but doesn't.

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

Parameters3/5

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

Both parameters (expected_cep_target, expected_project_path) are optional guards and schema description coverage is 100%, so the baseline is 3. The description adds nothing about their guard semantics, including that omitting them keeps existing behavior, which an agent would need to understand when calling.

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

Purpose4/5

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

States a specific verb and resource: "check for offline (missing) media in the project", with parenthetical clarification of what offline means. However, it does nothing to distinguish itself from the sibling tool get_offline_media, which by name appears to overlap almost entirely, forcing an agent to guess between them.

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

Usage Guidelines2/5

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

No guidance on when to prefer this over get_offline_media, relink_media, refresh_media, or inspect_edit_readiness. There are no exclusions, no prerequisites, and no indication of whether it scans the whole project or the active sequence, so usage must be inferred entirely from the name.

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

clear_item_in_outClear Item In OutA

Clear in and/or out points on a project item (reset to full duration). Still-image Out is independently verified only when its own duration is readable; otherwise the result explains that limit.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
clear_inNoClear the in point (default: true)
clear_outNoClear the out point (default: true)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: the reset-to-full-duration effect and the caveat that still-image Out is only independently verified when its own duration is readable, otherwise the result reports the limit. That is genuine outcome-shape disclosure 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.

Conciseness4/5

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

Two sentences with the operation stated first and the behavioral caveat second; nothing is padded. The second sentence is dense and slightly opaque, but it is not filler.

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

Completeness4/5

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

An output schema exists and the input schema is richly documented, so return values and guard semantics need not be repeated. The description covers the mutation's effect and the one verification limitation; the only real omission is that the idempotency/CEP-guard story lives entirely in the schema, which is acceptable given coverage.

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

Parameters3/5

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

Schema description coverage is 100%, including the clear_in/clear_out defaults, the idempotency_key contract, and the expected_cep_target/expected_project_path guards, so the schema carries the parameter burden. The description only hints at the in-and/or-out selectivity and adds nothing about item_id or the guard objects. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Clear in and/or out points on a project item') and clarifies the effect parenthetically ('reset to full duration'), which lets an agent distinguish it from set_item_in_out or clear_sequence_in_out. The item-vs-sequence distinction is only implied by 'project item' rather than stated against a named sibling.

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

Usage Guidelines3/5

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

Usage is implied by the operation itself, but there is no explicit when-to-use guidance and no mention of the adjacent siblings (set_item_in_out for the inverse, clear_sequence_in_out for the sequence-level equivalent). The agent must infer the choice from the name.

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

clear_sequence_in_outClear Sequence In OutA

Clear the in and/or out points on the active sequence so they read back as unset, and leave the other point unchanged.

NameRequiredDescriptionDefault
clear_inNoClear in point (default: true)
clear_outNoClear out point (default: true)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is partly covered. The description adds a useful postcondition (values read back as unset) and non-target preservation, but says nothing about the guard parameters that can make every command refuse, nor about the idempotency/replay semantics that the annotations mark as not idempotent.

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

Conciseness5/5

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

A single front-loaded sentence with the action, scope, and postcondition; no filler and nothing buried.

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

Completeness4/5

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

An output schema exists and the schema fully documents all five parameters, including the CEP/project-path guards and idempotency key, so the description does not need to restate them. What is still missing is what happens when no points are set and which backend the description targets, but the core call semantics are complete.

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

Parameters3/5

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

Schema description coverage is 100%, including clear_in/clear_out defaults of true and the elaborate expected_cep_target and idempotency_key text, so the schema carries parameter meaning. The description only echoes 'in and/or out' without adding format, default, or interaction detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (clear) and resource (in and/or out points on the active sequence), plus the exact postcondition: points read back as unset and the other point is left unchanged. That distinguishes it in spirit from set_sequence_in_out_points and clear_item_in_out, but it never names those siblings or explicitly contrasts sequence-level vs item-level clearing.

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

Usage Guidelines3/5

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

The scope ('active sequence') and the partial-clear behavior imply when to use it, and 'in and/or out' hints at selective clearing. But there is no explicit guidance on when to prefer this over set_sequence_in_out_points or clear_item_in_out, nor on prerequisites such as an active sequence being required.

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

close_all_source_clipsClose All Source ClipsC
Destructive

Close all clips in the Source Monitor.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the description's only job is to add context — but it says nothing about what is lost when source clips close (in/out marks, open-from-source state, selection) or why the operation is destructive. The one line adds no information beyond the annotations and title.

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

Conciseness3/5

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

A single short sentence is front-loaded and wastes no words, but for a destructive operation it is under-specified rather than genuinely concise — brevity here costs the agent useful context.

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

Completeness2/5

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

This is a destructive, non-idempotent mutation with an output schema and three optional guard/idempotency parameters; the description leaves unanswered what the effect actually is (do clips remain in the project panel, are in/out marks discarded, what happens on a second call) and never mentions the guard parameters used to verify the target state.

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

Parameters3/5

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

With 0 required parameters and 100% schema description coverage, the baseline is 3; the schema fully documents idempotency_key and the expected_cep_target guard, and the description neither adds nor contradicts anything about them.

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

Purpose3/5

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

The sentence names a verb and resource ("Close all clips in the Source Monitor"), which is more than a bare restatement of the title, but it is essentially the title expanded and does nothing to separate it from the sibling close_source_monitor, which is the tool an agent could most easily confuse it with.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus closing the Source Monitor entirely (close_source_monitor) or leaving clips open, and no prerequisites such as whether a sequence must be open. The agent must infer the routing decision from tool names alone.

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

close_projectClose ProjectA
Destructive

Close an open Premiere Pro project: the active one, or the open project at project_path. Captures the close reply without reading torn-down project objects, then verifies closure and the active project in a separate read-only call. An unreadable verification remains committed_unverified; a native close that never returns remains unknown.

NameRequiredDescriptionDefault
save_firstNoWhether to save before closing (default: true)
project_pathNoPath of the open project to close (default: the active project)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered; the description adds real value on top by describing the implementation contract (close reply captured without touching torn-down objects, closure verified in a separate read-only call) and the terminal outcome states committed_unverified and unknown. It does not cover what happens to unsaved edits when save_first is false beyond the schema's default note.

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

Conciseness4/5

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

Three dense sentences with the target selection front-loaded and the failure-mode tail last. Every sentence carries information, though the verification/outcome sentence is compressed enough to require a second read.

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

Completeness5/5

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

Annotations supply the destructive/read-only/idempotency profile, the schema fully documents all five parameters, and an output schema exists, so the description's remaining job is the failure-mode narrative it does provide. Nothing an agent needs to call this correctly appears to be missing.

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

Parameters3/5

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

Schema description coverage is 100%, so save_first, project_path, idempotency_key and the expected_* guards are already documented. The description only reinforces the active-vs-project_path selection, which the schema also states, and adds nothing about the idempotency or CEP target guards.

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

Purpose4/5

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

States a specific verb and resource ('Close an open Premiere Pro project') and scopes it to either the active project or the one at project_path. That is enough to tell it apart from close_sequence and open_project by noun, though neither sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: the description explains that it targets the active project by default and otherwise project_path, from which an agent can infer when to pass a path. There is no explicit 'use this instead of close_sequence' guidance, no note on save_first, and no stated preconditions such as unsaved changes.

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

close_sequenceClose SequenceA
Destructive

Request closing a sequence timeline tab. Premiere exposes no open-tab enumeration, so dispatch is requested_unverified; the sequence stays in the project.

NameRequiredDescriptionDefault
sequence_idNoSequence name or ID. Uses active sequence if omitted.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

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

Adds substantive context beyond the annotations: Premiere exposes no open-tab enumeration, so the dispatch is 'requested_unverified', and the sequence is not removed from the project. That explains why destructiveHint=true is conservative and warns the agent the outcome cannot be confirmed — exactly the kind of disclosure annotations can't carry.

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

Conciseness5/5

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

Two tight sentences, zero filler, and the unverified-dispatch caveat is front-loaded right after the action so the agent sees the risk before deciding.

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

Completeness5/5

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

Output schema exists, so return values need no explanation, and the schema documents all four parameters including the CEP identity guard. The description fills the one thing structured fields can't express — that the close is unverifiable and non-destructive to the project.

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

Parameters3/5

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

Schema description coverage is 100%, so sequence_id, idempotency_key, expected_cep_target and expected_project_path are already fully documented in the schema. The description adds nothing about parameter meaning, but the baseline of 3 applies when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource: 'Request closing a sequence timeline tab.' The closing clause 'the sequence stays in the project' effectively separates it from delete_sequence without naming the sibling, so an agent can infer the distinction.

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

Usage Guidelines3/5

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

Usage is only implied by the sentence 'the sequence stays in the project' and the word 'Request'. No explicit when-to-use, when-not-to-use, or named alternative (e.g. delete_sequence, close_all_source_clips) is given, and no preconditions are stated.

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

close_source_monitorClose Source MonitorB
Destructive

Close the clip currently showing in the Source Monitor. Premiere then shows the previously opened clip, if any; the result names it.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

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

The description adds real behavioral context beyond annotations: the Source Monitor reveals the previously opened clip and the result names it. However, annotations already flag destructiveHint=true and it never clarifies what 'destructive' means here (no media is deleted, undo behavior, whether the clip stack becomes empty), nor mentions the idempotency/expected-state guards that the schema carries.

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

Conciseness5/5

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

Two sentences, zero filler, with the primary action front-loaded and the side effect (previous clip restored) immediately after. Nothing is repeated from the name or annotations.

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

Completeness4/5

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

For a zero-required-parameter tool with an output schema and fully documented params, the description covers purpose and post-conditions adequately. It stops short of the 'when not to use' context that would make it fully complete alongside ~20 source-monitor siblings.

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

Parameters3/5

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

Schema description coverage is 100% and the parameters (idempotency_key, expected_cep_target, expected_project_path) are thoroughly self-documented. The description adds nothing about parameters, which is acceptable given the schema baseline of 3.

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

Purpose4/5

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

States a specific verb and resource ('Close the clip currently showing in the Source Monitor'), which is unambiguous and immediately distinguishes it from timeline/edit tools. It does not explicitly differentiate from the close_all_source_clips sibling, which caps it below 5.

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

Usage Guidelines2/5

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

No statement of when to use this versus close_all_source_clips, close_sequence, or open_in_source, and no prerequisites (e.g., whether a Source Monitor must be active). The agent has to infer the workflow context from the tool name alone.

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

color_correctColor CorrectA

Apply basic color correction through experimental QE Lumetri insertion. Requires Lumetri component and requested property readback; rendered output is not verified.

NameRequiredDescriptionDefault
tintNoTint adjustment
blacksNoBlacks adjustment (-100 to 100)
whitesNoWhites adjustment (-100 to 100)
node_idYesNode ID of the clip
shadowsNoShadows adjustment (-100 to 100)
contrastNoContrast adjustment (-100 to 100)
exposureNoExposure adjustment (-4.0 to 4.0)
highlightsNoHighlights adjustment (-100 to 100)
saturationNoSaturation (0-200, 100 = normal)
temperatureNoColor temperature adjustment
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already disclose that this is a write operation, not destructive, and not idempotent. The description adds meaningful caveats beyond that: the QE Lumetri insertion is experimental, it depends on a component/property-readback precondition, and rendered output is not verified.

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

Conciseness5/5

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

The description is two front-loaded sentences with no filler. The core action is stated first, followed immediately by the key operational caveats.

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

Completeness4/5

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

For a complex 13-parameter mutation tool, the description supplies the essential experimental and verification caveats, while the rich input schema and output schema carry parameter and return-value detail. The main missing context is explicit routing guidance versus sibling color tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the adjustment parameters, ranges, idempotency key, and guard objects. The description mentions the color-correction domain but does not add parameter-level meaning beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: applying basic color correction via experimental QE Lumetri insertion. It is clear what the tool does, but it does not differentiate itself from nearby siblings such as apply_lut, apply_effect, or set_color_value.

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

Usage Guidelines3/5

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

It gives an important precondition, requiring a Lumetri component and requested property readback, which implies when the tool can succeed. However, it does not explicitly say when to use this instead of apply_lut, apply_effect, or other color-related tools.

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

compare_cmx3600_edlsCompare Cmx3600 EdlsA

Compare two local CMX 3600 EDLs by event number and report bounded added, removed, and changed editorial events. Read-only; it does not alter either interchange file or Premiere.

NameRequiredDescriptionDefault
after_pathYesExisting revised .edl file
before_pathYesExisting baseline .edl file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior2/5

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

The description claims 'Read-only; it does not alter either interchange file or Premiere', but the annotations declare readOnlyHint=false, so the stated safety profile conflicts with structured data and an agent cannot trust which is authoritative. Beyond that, 'bounded' added/removed/changed events hints at report caps without stating them, and matching behavior for renumbered or duplicate event numbers is not disclosed.

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

Conciseness5/5

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

Two compact sentences, both of which earn their place: the first carries purpose, matching key, and output shape; the second carries the safety claim. Front-loaded with the operation and resource, with no filler.

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

Completeness3/5

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

An output schema exists, so return values need no prose, and the local/no-Premiere scope is addressed. Still missing for a comparison tool with nested guard parameters: the size/nature of the 'bounded' report, how event-number gaps or duplicates are treated, and whether an unparsable EDL yields an error or a partial diff.

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

Parameters3/5

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

Schema description coverage is 100%, so before_path/after_path and the CEP/idempotency parameters are already documented in the schema; the baseline 3 applies. The description adds no meaning beyond that and notably does not explain that the idempotency_key and expected_cep_target/expected_project_path guards are inert for a local-only comparison, leaving the agent to wonder why they appear.

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

Purpose5/5

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

States a specific verb and resource pair (compare two local CMX 3600 EDLs), the matching key (event number), and the shape of the result (added/removed/changed editorial events). This verb/resource combination cleanly separates it from sibling single-file tools such as inspect_cmx3600_edl, validate_cmx3600_edl, and import_edl.

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

Usage Guidelines3/5

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

The 'two local ... EDLs' phrasing implies the use case (diffing a before/after cut) and the 'local' qualifier rules out remote/live sources. However, it never names an alternative or exclusion, e.g. that a single file should go to inspect_cmx3600_edl or that a malformed file should go to validate_cmx3600_edl first, so the agent must infer routing.

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

compute_mask_fit_motionCompute Mask Fit MotionA
Read-onlyIdempotent

Inspect only. Compute the Motion Scale (%) and Position that place a still image's subject inside an existing Rounded Crop, Crop, or similar mask effect. Reads the sequence frame size, the source frame size, current Motion values, and the mask effect's parameters, then solves the geometry deterministically from a caller-supplied subject box (fractions of the source image, for example head-top to chin). No image analysis and no changes to Premiere. Apply the result with set_clip_scale and set_clip_position (or set_effect_property), then verify with capture_frame. Assumes Rotation 0 and uniform scale; mask geometry is treated as fixed in the sequence frame (mask_space 'sequence').

NameRequiredDescriptionDefault
node_idYesNode ID of the video clip that holds the still image and its Motion effect.
subjectYesSubject box in the SOURCE image as fractions of the source frame (0..1), for example top = head-top and bottom = chin or collar.
fit_axisNoFit the subject's height to placement top/bottom (default) or its width to placement left/right.
placementNoWhere the subject should sit inside the mask, as fractions of the mask's bounding box. Defaults: top 0.15, bottom 0.85, center_x 0.5 (height fit); left 0.15, right 0.85, center_y 0.5 (width fit).
mask_spaceNoWhere the mask geometry lives. 'sequence' (default): the mask stays fixed in the sequence frame while Motion moves the image (mask on an adjustment layer or nest, or an effect that renders after Motion). 'clip': the mask moves with the clip's Motion, so Motion cannot reframe the subject inside it and the tool returns an error explaining that.
mask_effectNoDisplay name or match name of the mask effect (case-insensitive). Defaults to 'Rounded Crop'. Built-in 'Crop' Left/Top/Right/Bottom percentages are supported too.
mask_node_idNoNode ID of the clip that carries the mask effect when it is not the image clip, for example an adjustment layer or nest above it. Defaults to node_id.
source_widthNoSource image width in pixels. Overrides the value read from project metadata; required with source_height when Premiere does not report it.
mask_overrideNoMask bounding box as fractions of the SEQUENCE frame. Skips reading mask parameters; use it when the effect's parameters cannot be interpreted.
source_heightNoSource image height in pixels. Overrides the value read from project metadata.
source_prescaleNoExtra scale Premiere applies before Motion, for example when Scale to Frame Size is on (sequence height / source height for a letterboxed fit). Defaults to 1.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses that the tool reads sequence size, source size, current Motion values, and mask parameters, and solves deterministically from a caller-supplied box. It states the modeling assumptions (Rotation 0, uniform scale, mask fixed in sequence frame) and one explicit failure mode, which the annotations alone would not convey.

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

Conciseness5/5

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

The scope flag 'Inspect only' is front-loaded, followed immediately by what is computed, then inputs read, then how to apply. Five sentences carry distinct load with no repetition of the schema or of the title.

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

Completeness4/5

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

For a 13-parameter geometry solver with an output schema, the description covers purpose, inputs read, assumptions, and the follow-up workflow, so an agent can call it correctly. Minor gaps remain: behavior when the node is not a still or the mask effect is not found, and no note that the CEP/path guard parameters are optional no-ops for this local computation.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter already carries an explanation; the description mostly restates them at a high level (subject box as fractions, mask_space 'sequence' default). It adds a little framing ('head-top to chin') but no new syntax, units, or interaction rules beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description names a specific verb and output: compute Motion Scale (%) and Position to fit a still's subject inside an existing mask effect. It explicitly marks the tool as 'Inspect only' and 'No image analysis and no changes to Premiere', which separates it cleanly from the mutating siblings in the list (set_clip_scale, set_clip_position, crop_clip).

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

Usage Guidelines5/5

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

It states the situation that selects this tool (placing a still's subject inside a Rounded Crop/Crop) and names the exact downstream alternatives for applying the result (set_clip_scale, set_clip_position, set_effect_property) plus verification via capture_frame. The mask_space='clip' case is called out as an error condition, so the agent knows when the tool cannot be used.

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

consolidate_and_transferConsolidate And TransferA

Collect (copy) or transcode project media into a new project with Premiere's Project Manager. Premiere writes a Copied_ folder inside destination_path (created if missing); success is reported only after that folder holds the copied .prproj, with the copied files listed.

NameRequiredDescriptionDefault
transcodeNoTranscode media to match the sequence instead of copying it (default: false)
rename_mediaNoRename media to match clip names (default: false)
exclude_unusedNoExclude unused clips (default: true)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
convert_ae_compsNoConvert After Effects compositions (default: false)
destination_pathYesDestination folder path for the consolidated project
convert_syntheticNoConvert synthetic importer items (default: false)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
copy_to_new_locationNoMust be true (the default): Premiere's scripted Project Manager always collects media into the destination.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
include_all_sequencesNoInclude all sequences (default: true). If false, only active sequence is used.
include_preview_filesNoInclude preview/render files (default: false)
convert_image_sequencesNoConvert image sequences to clips (default: false)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing the concrete side effect (a Copied_<project> folder created inside destination_path if missing) and the success contract (success reported only after the folder holds the copied .prproj with files listed). This is exactly the kind of write-side context annotations can't carry; only permission/rate-limit concerns are omitted.

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

Conciseness5/5

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

Two sentences: purpose front-loaded, then the important write/success behavior. Nothing is wasted and the most decision-relevant facts (folder creation, success condition) come first.

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

Completeness4/5

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

For a 13-param mutation with a rich schema and an output schema, the description covers purpose, side effects, and success semantics adequately. What remains thin is invocation guidance and the many boolean options, but those are documented in the schema.

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

Parameters3/5

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

Schema coverage is 100%, so all 13 parameters including the nested expected_cep_target and idempotency_key are already documented. The description adds only marginal semantics (destination_path created if missing, copy-vs-transcode framing), so baseline 3 is correct.

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

Purpose4/5

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

States specific verbs ('Collect (copy) or transcode') and resource ('project media into a new project') and names the mechanism (Premiere's Project Manager). Clear on its own, though it never explicitly contrasts with adjacent siblings like consolidate_duplicates or export_as_project.

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

Usage Guidelines2/5

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

There is no when-to-use / when-not-to-use guidance and no named alternative. An agent must infer from the behavioral description that this is the tool for consolidating media into a new project rather than routing to a sibling.

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

consolidate_duplicatesConsolidate DuplicatesB

Consolidate duplicate project items and report success only when duplicate media groups decrease.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds a useful postcondition — success is reported only when duplicate media groups decrease — but it does not explain what 'consolidate' actually does to the items, how duplicates are grouped, or how the expected identity guards affect execution.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. Both clauses earn their place: the first states the action, and the second states the success condition.

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

Completeness2/5

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

This is a complex mutation with nested guard objects, an output schema, and many related siblings, yet the description is extremely thin. It does not cover prerequisites, what happens to duplicate items or media, how the keeper is chosen, or why idempotency guards exist despite idempotentHint=false.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents idempotency_key, expected_cep_target, and expected_project_path in detail. The description adds no parameter-level meaning, so the baseline of 3 applies when the schema carries this burden.

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

Purpose4/5

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

The description states a specific verb and resource: 'Consolidate duplicate project items.' This clearly identifies a mutation over duplicate project items, but it does not distinguish the tool from nearby siblings such as get_duplicate_media (which locates duplicates) or consolidate_and_transfer.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives, nor any prerequisite such as first running get_duplicate_media. Usage is only weakly implied by the existence of duplicates; an agent must infer the workflow.

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

convert_timeline_timeConvert Timeline TimeA
Read-onlyIdempotent

Convert exact Premiere tick strings, rational frames, samples, decimal seconds and signed/drop-frame timecode locally. Nearest ties round away from zero; intervals use inclusive start and exclusive end. No floating-point tick parsing or host dispatch.

NameRequiredDescriptionDefault
toYesOutput unit.
fromYesInput unit.
valueYesExact decimal ticks/frame/sample/seconds or timecode string.
roundingNoRounding policy; default nearest.
drop_frameNoUse semicolon drop-frame timecode at30000/1001 or60000/1001.
frame_rateYesExact rational frames per second; e.g. 30000/1001.
sample_rateNoRequired for sample input.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

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

With annotations already declaring readOnly/idempotent/non-destructive, the description adds real behavioral detail beyond the structured fields: tie-breaking ('nearest ties round away from zero'), interval conventions ('inclusive start and exclusive end'), and the no-floating-point-tick-parsing guarantee. It could still say what happens on out-of-range or mismatched frame rates, so not a 5.

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

Conciseness4/5

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

Two dense but efficient sentences; the core action and unit list are front-loaded and every clause carries information (rounding, interval bounds, locality). Slightly list-heavy but no wasted phrasing.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the schema covers the 9 parameters in depth. The description supplies the non-obvious semantic rules an agent could not infer, so it is complete enough, with only minor gaps around error behavior.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter, including rounding, drop_frame, sample_rate, and the expected_* guards. The description mostly restates the unit enums and adds only the rounding/interval semantics, which is the baseline-3 case for high schema coverage.

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

Purpose4/5

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

The description states a specific verb+resource (convert time values) and enumerates the supported unit space (ticks, rational frames, samples, decimal seconds, signed/drop-frame timecode), which makes it clearly distinct from the timeline-editing siblings. It does not explicitly name an alternative tool, so it stops short of the top score.

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

Usage Guidelines3/5

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

The phrase 'locally' and 'no host dispatch' implies this is a pure computation tool that needs no Premiere connection, which is useful routing signal. However, it never says when to prefer this over in-tool parameters like in_ticks/out_ticks on the mutation tools, nor any prerequisites. Usage 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.

copy_effects_between_clipsCopy Effects Between ClipsA

Copy all effects (or a specific effect) from one clip to another, including parameter values and keyframes, and read every written value back. A missing effect is added through the experimental legacy QE DOM; when the target already has that effect, its values are updated instead of stacking a second default-valued instance. Intrinsic components such as Motion and Opacity are skipped unless named. Uses the same component matching and per-property receipts as paste_clip_attributes.

NameRequiredDescriptionDefault
effect_nameNoSpecific effect display name to copy (copies all non-intrinsic effects if omitted)
source_node_idYesNode ID of the source clip to copy effects from
target_node_idYesNode ID of the target clip to paste effects to
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

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

Goes well past the annotations (readOnly=false, destructive=false) by disclosing that every written value is read back, that a missing effect is added through an experimental legacy QE DOM, that an existing effect is updated rather than duplicated, and that intrinsic components are skipped unless named. Not a 5 because failure modes, permissions, and whether the target must be on the active sequence are unstated.

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

Conciseness4/5

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

Three dense sentences with the core action front-loaded and the caveats (QE DOM, intrinsic skip) following in priority order. The trailing cross-reference to paste_clip_attributes earns its place; little is wasted.

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

Completeness4/5

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

With an output schema present and 100% schema coverage, the description need not explain return values, and it covers the non-obvious write semantics adequately. The remaining gap is that it never says what precondition failures look like for a mutation whose idempotency_key suggests retry handling while idempotentHint is false.

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

Parameters3/5

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 corroborates the effect_name semantics (single effect vs all, intrinsic exclusion) but adds no syntax, format, or constraint detail beyond the schema.

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

Purpose5/5

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

States a specific verb and resource (copy effects from one clip to another) plus the payload carried (parameter values and keyframes), and scopes it precisely: all effects by default, one effect when named, intrinsics skipped. An agent can distinguish it from copy_effect_values and paste_clip_attributes from the text alone.

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

Usage Guidelines3/5

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

Implicit routing only: the 'effect_name' behavior tells the agent how to narrow the copy, and the cross-reference to paste_clip_attributes implies shared semantics, but there is no explicit statement of when to choose this tool over copy_effect_values, paste_clip_attributes, or batch_apply_effect.

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

copy_effect_valuesCopy Effect ValuesA

Copy verified scalar and colour effect-property values from one effect to the matching effect on another clip. Both clips must already have the same effect applied. Properties are matched by position, then by unique display name, because effects such as Lumetri Color repeat names across sections. Legacy CEP deliberately refuses Blend Mode because Premiere can corrupt its enum value on cross-clip writes.

NameRequiredDescriptionDefault
effect_nameYesDisplay name of the effect to copy values for
source_node_idYesNode ID of the source clip
target_node_idYesNode ID of the target clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare a non-read-only, non-destructive mutation, and the description adds real depth beyond them: only scalar and colour values are copied (not arbitrary state), matching is deterministic, and Blend Mode is deliberately refused because Premiere can corrupt its enum on cross-clip writes. It does not cover the idempotency/guard parameters or reversibility, which are left entirely to 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.

Conciseness5/5

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

Three sentences, zero filler, and the core action is front-loaded before preconditions and the matching/limitation rationale. Every sentence carries distinct information.

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

Completeness4/5

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

For a mutating tool with six parameters, nested guard objects and an output schema, the description covers the essentials: what is copied, what is required, how matching works, and one notable exclusion. The unmentioned pieces (idempotency semantics, guard verification, return shape) are all fully specified in structured fields, so nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all six parameters including the idempotency key and the CEP guard object. The description adds only the matching rule that gives effect_name its meaning across the two clips; it says nothing about expected_cep_target or expected_project_path, so the baseline 3 holds.

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

Purpose4/5

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

States a specific verb and resource: copying scalar and colour effect-property values from one effect to the matching effect on another clip. That implicitly separates it from copy_effects_between_clips (whole effects) and paste_clip_attributes, but no sibling is ever named, so the agent must infer the boundary.

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

Usage Guidelines4/5

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

The key precondition is explicit: both clips must already have the same effect applied, otherwise the call is invalid. It also states the matching strategy (position, then unique display name) and the Blend Mode exclusion, giving clear usage context — but it never says when to prefer this over sibling effect-copying or attribute-pasting tools.

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

create_bars_and_toneCreate Bars And ToneA

Create a Bars and Tone synthetic media item in the project (useful for leader/calibration). Returns the created item's name, nodeId, and treePath, found by reading the project back.

NameRequiredDescriptionDefault
nameNoName for the bars and tone item (default: 'Bars and Tone')
widthNoFrame width in pixels (default: 1920)
bin_idNoOptional destination bin: node ID, slash-separated bin path from the project root, or bin name. The bin is resolved before anything is created; the item is moved there and its location read back.
heightNoFrame height in pixels (default: 1080)
timebaseNoTimebase as ticks-per-second string (default uses sequence timebase)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
audio_sample_rateNoAudio sample rate in Hz (default: 48000)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
pixel_aspect_numeratorNoPixel aspect ratio numerator (default: 1)
pixel_aspect_denominatorNoPixel aspect ratio denominator (default: 1)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint=false, destructiveHint=false, and openWorldHint=false, the description adds behavioral detail by saying the result is 'found by reading the project back' and by naming the returned fields. It does not discuss idempotency or bin resolution, but those are fully covered in 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.

Conciseness5/5

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

The description is two tight sentences with the core action front-loaded and no wasted wording. It includes the purpose and return behavior without padding.

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

Completeness4/5

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

For an 11-parameter mutation tool with nested guard objects and an output schema, the description states the purpose and key return values while the schema handles all parameter details. It is complete enough to call correctly, though it could mention idempotency or bin resolution for extra context.

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

Parameters3/5

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

Schema description coverage is 100%, so all 11 parameters are already documented in the schema. The description does not add parameter-level guidance beyond return fields, which is appropriate for the baseline when the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb and resource: 'Create a Bars and Tone synthetic media item in the project.' It also distinguishes the operation from other create/import siblings by identifying the item as synthetic media useful for leader/calibration.

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

Usage Guidelines4/5

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

The parenthetical 'useful for leader/calibration' gives clear context for when to use the tool. It does not name explicit exclusions or alternatives, but the intended usage is evident.

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

create_binCreate BinA

Create a new bin (folder) in the project panel, optionally nested inside an existing bin. Reads the project back: verified is true only when the new bin is a direct child of the requested parent; otherwise the result reports outcome committed_unverified.

NameRequiredDescriptionDefault
nameYesName of the new bin
parent_binNoOptional parent bin node ID, slash-separated bin path, or exact bin name. Alias of parent_bin_id that also accepts a path or name.
parent_bin_idNoOptional node ID of the existing parent bin (searched recursively through nested bins). Creates in the project root if both parent_bin_id and parent_bin are omitted.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing the post-write read-back and the exact verification semantics: verified is true only for a direct child, otherwise outcome is committed_unverified. That is real behavioral context an agent can act on. It omits conflict handling (duplicate bin names) and failure modes, keeping it short of a 5.

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

Conciseness5/5

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

Two sentences, zero filler, with the primary action front-loaded and the verification caveat in the second sentence. Every clause carries information.

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

Completeness5/5

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

Output schema exists, so return-value detail is not required, and the description still explains the meaningful return flag (verified/committed_unverified). For a non-destructive mutation with fully documented params and a CEP guard, nothing essential is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so parent_bin, parent_bin_id, idempotency_key and the CEP guards are already fully documented. The description only restates that nesting is optional, adding nothing on syntax or defaults beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ("Create a new bin (folder) in the project panel") plus the nesting scope. The clarifying "(folder)" implicitly separates it from create_smart_bin, but no sibling is named explicitly, so an agent must still infer the boundary.

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

Usage Guidelines3/5

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

Use case is implied by the create/nesting framing, but there is no explicit when-to-use, no prerequisite (e.g. a project must be open), and no routing advice versus create_smart_bin or move_item_to_bin. Adequate but leaves selection to inference.

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

create_caption_trackCreate Caption TrackA

Import an already reviewed caption artifact into the active sequence, or create a local lecture-caption timing and review workflow plan. Import rejects unsupported formats before host dispatch and reports structural success only when valid count readback shows exactly one new caption track. Unreadable or unexpected results preserve committed_unverified diagnostics; inspect before retrying. The planning action never contacts Premiere or changes an artifact.

NameRequiredDescriptionDefault
actionNoUse import (the default) to create a Premiere caption track, or plan_lecture_workflow for a read-only SRT/VTT timing and review plan.import
item_idNoFor action import, the node ID or name of the imported caption project item (for example, an SRT file). Omit for plan_lecture_workflow.
start_secondsNoFor action import, offset in seconds from the start of the sequence (default: 0).
caption_formatNoFor action import, Premiere caption format: subtitle (default), 608, 708, teletext, ebu, op42, or op47.
artifact_formatNoFor plan_lecture_workflow, the syntax of caption_content. VTT content must include its WEBVTT header.
caption_contentNoFor plan_lecture_workflow, the caller-owned SRT or VTT content to parse locally. The returned plan contains no caption text and does not write this artifact.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
observed_offset_secondsNoFor plan_lecture_workflow, an editor-observed constant offset in seconds. Positive means captions currently appear later than intended; the preview proposes the inverse shift when safe.
target_duration_secondsNoFor plan_lecture_workflow, optional intended sequence duration. A mismatch requires review unless proportional scaling is explicitly authorized.
timing_tolerance_secondsNoFor plan_lecture_workflow, tolerance used to classify an offset or duration mismatch (default: 0.25 seconds).
allow_proportional_scalingNoFor plan_lecture_workflow, explicitly permit a bounded timing-scale preview when the artifact end does not match target_duration_seconds. This still never rewrites a caption artifact.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior5/5

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

The description adds substantial behavior beyond the annotations: import rejects unsupported formats before host dispatch, reports structural success only when count readback shows exactly one new caption track, and preserves committed_unverified diagnostics for unreadable or unexpected results. It also clarifies that the planning action is local-only and does not touch Premiere or artifacts.

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

Conciseness5/5

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

Four sentences, front-loaded with the tool's purpose and followed by compact behavioral notes. The description is dense but every sentence adds useful context for a complex tool with multiple actions.

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

Completeness4/5

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

Given the complexity, an output schema, and full schema parameter descriptions, the description is largely complete: it covers both actions and the critical import/planning behavioral differences. Minor gaps around idempotency and CEP guard semantics are covered adequately by the schema, not the description.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters in detail. The description explains the two action modes but does not add parameter-specific meaning beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

The description states specific verbs and resources: import a reviewed caption artifact into the active sequence, or create a local lecture-caption timing and review workflow plan. The two modes are clearly distinguished, but the description does not explicitly differentiate this tool from closely related siblings such as build_caption_artifact or read_sequence_captions.

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

Usage Guidelines4/5

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

It gives clear context for each action: use import for an already reviewed caption artifact, and use the planning action for a local lecture-caption workflow. It also notes that planning never contacts Premiere or changes an artifact, but it does not name explicit alternatives or 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.

create_context_edit_planCreate Context Edit PlanA
Read-onlyIdempotent

Create a non-mutating, evidence-backed edit-plan scaffold from indexed Premiere context. It returns ranked source/time candidates and stale-state guards; the model must review them and use preview_edit_plan before any mutation.

NameRequiredDescriptionDefault
intentYesEditing goal, such as finding the strongest budget explanation for a rough cut
strategyNoPlanning mode; default rough_cut
project_idYesProject context ID returned by manage_project_context capture
sequence_idNoOptional exact sequence ID filter
max_candidatesNoMaximum 25; default 8
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already establish read-only, non-destructive, idempotent behavior, and the description adds useful context by saying it returns ranked source/time candidates and stale-state guards. It also reinforces that review is required before mutation, though it does not elaborate on indexed-context prerequisites or failure modes.

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

Conciseness5/5

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

The description is two sentences, front-loads the core operation, and spends the remainder on the critical workflow guardrail. There is no redundant or filler language.

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

Completeness4/5

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

An output schema exists, the annotations cover safety properties, and the description explains the returned candidate/guard concept plus the required preview step. It is nearly complete, though it could more explicitly surface the required project context or indexed-state prerequisite.

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

Parameters3/5

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

Schema description coverage is 100%, so all seven parameters are already documented in the schema. The description does not add parameter-level meaning beyond referring broadly to 'indexed Premiere context,' so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Create') and resource ('edit-plan scaffold') and scopes it as non-mutating, evidence-backed, and derived from indexed Premiere context. It also explicitly names preview_edit_plan as the required next step before mutation, which makes the tool's role distinguishable from mutation siblings.

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

Usage Guidelines4/5

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

It clearly states the workflow context: the model must review the returned candidates and use preview_edit_plan before any mutation. This gives a strong when-to-use cue and names the safer follow-up tool, though it does not explicitly exclude similar planning tools such as create_editorial_plan.

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

create_editorial_context_packCreate Editorial Context PackA
Read-onlyIdempotent

Create a compact Markdown reading view from already captured local transcript, shot, audio, note, source, or timeline context. It returns stable evidence IDs and context revisions for review, never calls an AI/provider or Premiere, and cannot change the project.

NameRequiredDescriptionDefault
kindsNoOptional context-kind filter. Omit to retrieve all matching local evidence.
intentYesThe editorial question used to retrieve and compact local evidence.
project_idYesProject context ID returned by manage_project_context capture.
max_entriesNoMaximum matching evidence entries to include.
sequence_idNoOptional exact sequence ID filter.
max_charactersNoStrict maximum length of the Markdown reading view.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing that it returns stable evidence IDs and context revisions and that it makes no AI/provider or Premiere calls and cannot mutate the project. That is useful added context on side effects and output shape, though return format details are left to the output schema.

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

Conciseness5/5

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

Two tight sentences with the core action and scope front-loaded, followed by the no-side-effects guarantee. No filler, every clause carries information.

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

Completeness4/5

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

With an output schema present, the description needn't detail return values, and the rich schema covers the 8 parameters. It adequately conveys the local-only, non-mutating nature for a read/assembly tool, though it could note relation to the capture step that precedes it.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including the nested expected_cep_target is already documented in the schema. The description adds no parameter-level meaning, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Create') and a concrete artifact ('compact Markdown reading view') built from enumerated local evidence kinds, which is precise. It implicitly distinguishes itself from capture tools by saying 'already captured local ... context,' though it never names the sibling that performs capture (manage_project_context).

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

Usage Guidelines3/5

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

Usage is implied ('for review', 'already captured local ... context') and the boundaries ('never calls an AI/provider or Premiere') help scope it. However, it never explicitly says when to choose this over neighbors like search_project_context or create_context_edit_plan, leaving the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_editorial_planCreate Editorial PlanA
Read-onlyIdempotent

Create a local, evidence-backed editorial workflow plan from captured project context. It never calls an LLM, uploads media, or changes Premiere.

NameRequiredDescriptionDefault
intentYesThe editorial goal used to retrieve relevant local evidence.
workflowYesThe workflow to plan. Every workflow remains review-only.
project_idYesProject context ID returned by manage_project_context capture.
sequence_idNoOptional exact sequence ID filter for evidence retrieval.
max_candidatesNoMaximum evidence candidates to include; defaults to 8.
platform_targetsNoRequired only for platform_cutdown. These are proposed derivative sequence dimensions; this tool does not create or reframe a sequence.
organization_rulesNoRequired only for organize. Rules are supplied by the editor or MCP client; the server does not infer categories from filenames alone.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description's 'never calls an LLM, uploads media, or changes Premiere' is partly redundant. Still, the explicit no-LLM and no-media-upload guarantees add concrete behavioral context an agent cannot infer from the hints alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, action first and non-goals second, with zero filler. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists and the input schema is richly annotated, so the description need not explain return values or fields. The read-only, local nature of the operation is stated, leaving only minor gaps around what the produced plan contains and how it relates to preview/apply steps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including conditional requirement notes for platform_targets (platform_cutdown only) and organization_rules (organize only), so the schema carries the parameter burden. The description adds no syntax or semantics beyond pointing at 'captured project context', so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create ... editorial workflow plan') plus qualifying scope ('local, evidence-backed ... from captured project context'). It is clearly a planning-only tool, but it does not explicitly differentiate itself from nearby siblings such as preview_editorial_plan or create_context_edit_plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'From captured project context' implies the prerequisite that manage_project_context capture must run first, and the project_id schema field confirms this. However, there is no explicit statement of when to choose this over preview_editorial_plan or the apply_* siblings, so the routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_mogrt_batchCreate Mogrt BatchA

Create the exact MOGRT recipes from a one-time batch preview. Requires explicit export confirmation and stops on the first After Effects failure without claiming rollback.

NameRequiredDescriptionDefault
preview_tokenYesOne-time token returned by preview_mogrt_batch.
confirm_exportYesMust be true to request every planned export.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful behavior beyond annotations: it requires explicit confirmation and stops on the first After Effects failure without pretending to roll back. That failure semantics is useful for an agent deciding whether to retry or report partial failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences, front-loaded with the action and then the confirmation and failure behavior. No filler or repeated schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex, with five parameters, nested expected-target objects, and an output schema, but the schema and annotations carry most of the structural and safety detail. The description supplies the essential preview prerequisite, confirmation gate, and failure behavior; only the idempotency nuance is left solely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents preview_token, confirm_export, idempotency_key, and the CEP target guards in detail. The description only implicitly maps to preview_token and confirm_export, leaving the idempotency and expected-target semantics to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: create MOGRT recipes from a batch preview. The word 'batch' and the reference to a one-time preview distinguish it from the single-recipe create_mogrt_recipe, though it does not explicitly name that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Makes the prerequisite clear by saying it uses a one-time batch preview, which implies preview_mogrt_batch must have been called first, and requires explicit export confirmation. It does not list when not to use it or name alternatives directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_mogrt_recipeCreate Mogrt RecipeA

Create exactly one previewed MOGRT recipe in a saved After Effects project inside the approved workspace. Requires explicit export confirmation; it never creates projects or output folders.

NameRequiredDescriptionDefault
preview_tokenYesOne-time token returned by preview_mogrt_recipe; it expires after 10 minutes.
confirm_exportYesMust be true to save the open AE project and request the planned .mogrt export.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring non-read-only, non-destructive, and non-open-world behavior, the description adds useful context about single-item scope, the saved AE project requirement, approved workspace restriction, explicit confirmation, and what it does not create. It does not reiterate or contradict the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It uses two tight sentences, front-loading the core action and scope before the confirmation and non-creation constraints. Every sentence adds useful information without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutating tool with rich schema and output schema, the description covers the essential action, scope, confirmation requirement, and important non-effects. It leaves the explicit preview workflow and idempotency behavior to the schema rather than restating them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents preview_token, confirm_export, idempotency_key, expected_cep_target, and expected_project_path. The description adds high-level meaning for preview and confirmation, but does not materially explain the more complex parameters beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: creating exactly one previewed MOGRT recipe. It also scopes the operation to a saved After Effects project inside an approved workspace, which distinguishes it from batch creation and preview-only siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear preconditions: the recipe must be previewed and explicit export confirmation is required. It also clarifies a boundary (never creates projects or output folders), but it does not explicitly name preview_mogrt_recipe or create_mogrt_batch as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectCreate ProjectC

Create a new Premiere Pro project at the specified path

NameRequiredDescriptionDefault
pathYesFull file path for the new .prproj file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the description must add context the annotations cannot. It adds nothing: no statement about overwrite behavior when the target .prproj already exists, no permission or connection requirements, no note that the schema exposes an idempotency_key despite idempotentHint=false. For a mutating creation tool this is a real disclosure gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single clean sentence with the resource and the key input front-loaded and no filler. It is appropriately sized, though the brevity comes at the cost of the missing guidance noted elsewhere rather than from disciplined editing of necessary content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool takes four parameters including deeply nested optional guard objects (expected_cep_target, expected_project_path) and an idempotency key, and has an output schema. The description explains none of these—not when the optional guards should be supplied, not what the idempotency key does, not what creating a project does to any existing file at that path. Inadequate relative to the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents path, idempotency_key, expected_cep_target, and expected_project_path in depth. The description only echoes the 'path' concept in passing and adds no syntax, format, or default guidance beyond what the schema provides, which is the baseline expectation here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new Premiere Pro project') plus the input it consumes ('at the specified path'), which is more informative than the title alone. However, it does not distinguish this from adjacent siblings such as create_project_backup, open_project, or save_project_as, so an agent gets no disambiguation signal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no when-to-use guidance, no preconditions (e.g. whether a project must be closed first, whether an existing file at that path is overwritten or errored), and no mention of any alternative tool. Everything beyond 'create a project' 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.

create_project_backupCreate Project BackupA

Create a collision-safe, byte-verified backup beside an existing .prproj file without opening or modifying the source project.

NameRequiredDescriptionDefault
project_pathYesAbsolute or working-directory-relative path to an existing .prproj file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false; the description earns credit by explaining why it is safe despite writing — collisions are avoided and the copy is byte-verified, and the source project is neither opened nor modified. It stops short of describing the backup naming scheme or on-disk location, which is the remaining behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the action first and the safety guarantees trailing. Every clause (collision-safe, byte-verified, beside source, non-modifying) carries distinct information; nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering the safety profile and an output schema covering returns, the description supplies the non-obvious essentials: the operation is non-destructive to the source and integrity-verified. It could still note where/how the backup file is named, but nothing critical to invoking it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters (including the deeply documented idempotency_key and CEP guard objects) are explained in the schema itself. The description adds no parameter-level meaning beyond implying that project_path must point to a real .prproj, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create ... backup" of an existing .prproj file) plus the key qualifiers: collision-safe, byte-verified, placed beside the source. The clause "without opening or modifying the source project" implicitly separates it from save_project/save_project_as, but no sibling is named explicitly, keeping it just shy of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: "beside an existing .prproj file" signals the precondition that the project already exists on disk, but the description never says when to prefer this over save_project, save_project_as, or export_as_project, nor when not to use it. No guidance on the idempotency_key retry flow is offered at the description level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sequenceCreate SequenceC

Create a new sequence in the project

NameRequiredDescriptionDefault
nameYesName for the new sequence
preset_pathNoOptional path to a sequence preset file (.sqpreset). If omitted, a default preset is discovered from the Premiere installation (override with PREMIERE_DEFAULT_SEQUENCE_PRESET).
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing behavioral beyond that: it does not say whether the new sequence becomes the active sequence, whether a default preset is applied, or that the idempotency key prevents duplicate creations — all of which live only in schema text.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with zero waste and a front-loaded verb, but it is under-specified rather than efficiently concise — the one thing it should have added (differentiation from the other create-sequence siblings) is absent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with 5 parameters, nested guard objects, an output schema, and several sibling creation paths, the description is too thin. The heavy schema does the documenting, but nothing tells the agent which creation variant to pick or how the CEP/UVP guard parameters affect success.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including detailed prose on preset_path defaults and idempotency_key replay semantics, so the schema carries the full parameter burden. The description contributes no parameter meaning at all, which is the baseline case for a fully documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("Create a new sequence") and scopes it to the project, so the agent knows the basic operation. It does not distinguish this from the closely related siblings create_sequence_from_preset, create_sequence_from_clips, or import_sequences, which is exactly where confusion would arise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the preset-based or clip-based creation siblings, and no prerequisites (e.g. project must be open, resulting sequence becomes active). The agent must infer routing from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sequence_checkpointCreate Sequence CheckpointA

Clone a sequence into a named '[checkpoint]' copy before a risky edit and return a diff_sequence_snapshots-compatible snapshot of the original. Verifies the clone exists with matching track and clip counts, re-activates the original, and never deletes or overwrites anything.

NameRequiredDescriptionDefault
labelNoShort label for the checkpoint (default 'checkpoint').
sequence_idNoSequence ID or name to checkpoint. Defaults to the active sequence.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
include_snapshotNoReturn the original sequence's structural snapshot for later diff_sequence_snapshots calls (default true).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses real side effects: the clone is verified against track and clip counts, the original is re-activated, and nothing is deleted or overwritten. That added detail meaningfully complements destructiveHint=false, though it says nothing about how the operation interacts with the idempotency_key replay semantics documented in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the primary action is front-loaded ahead of the verification and safety details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and an output schema present, the description only needs to carry behavior, and it covers creation, verification, and safety. A small gap remains around where the checkpoint copy lands (bin/placement) and whether the target sequence must be active or is resolved from sequence_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters including the nested guard objects are already documented. The description only hints at the label convention ('[checkpoint]') and adds no meaning to sequence_id, include_snapshot, or the expected_* guards; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (clone a sequence into a named '[checkpoint]' copy) and adds the secondary effect (returns a diff_sequence_snapshots-compatible snapshot). It does not explicitly differentiate itself from sibling duplicate_sequence, so a reader must infer why this exists alongside a plain duplication tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear triggering context ('before a risky edit') and points at the downstream consumer (diff_sequence_snapshots). It does not mention list_sequence_checkpoints as the way to inspect existing checkpoints, nor does it say when duplicate_sequence would be preferred instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sequence_from_clipsCreate Sequence From ClipsA

Create a new sequence from project items, then verify its registered identity, name and source-item placements. clipCount reports observed track items; requestedClipCount reports requested source items.

NameRequiredDescriptionDefault
nameYesName for the new sequence
item_idsYesArray of project item names or node IDs to include in order
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description focuses on what to expect after the write: verification of registered identity, name, and source-item placements. Explaining that clipCount is observed track items while requestedClipCount is requested source items is genuinely useful non-obvious context. It does not discuss failure/partial-application behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, action stated first and the return-field clarification second. Every clause carries information an agent would otherwise have to discover empirically.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich schema/annotation coverage on the write-safety guards, the description need only frame the operation and the postcondition, which it does. Minor gaps remain: it doesn't say whether the new sequence becomes active, where it is placed (bin/root), or what a partial failure looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested expected_cep_target / idempotency_key parameters are documented in great detail in the schema itself, so the baseline of 3 applies. The description only loosely maps "project items" and "requested source items" to item_ids, adding no syntax or ordering guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create a new sequence from project items") plus the postcondition it verifies, which distinguishes it from siblings like duplicate_sequence or create_sequence_from_preset without naming them. The distinction is inferable from "from project items" rather than explicit, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "from project items" implicitly signals when this tool is the right choice versus preset-based creation, but there is no explicit when-to-use, when-not-to-use, or naming of the adjacent siblings (create_sequence, create_sequence_from_preset, duplicate_sequence, create_subsequence). Usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sequence_from_presetCreate Sequence From PresetA

EXPERIMENTAL (undocumented QE DOM): create a new sequence from a specific preset file (.sqpreset) using qe.project.newSequence. Reports success only after a new sequence ID appears in the project collection; a same-name sequence that was already active is not treated as created.

NameRequiredDescriptionDefault
nameYesName for the new sequence
preset_pathYesFull path to the .sqpreset file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing that this relies on an undocumented QE DOM call (a real stability risk), and by defining exactly what counts as success: a new sequence ID must appear in the project collection, and a pre-existing same-name active sequence does not count. It does not explain what happens to the partially-created sequence if verification fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, with the EXPERIMENTAL/undocumented warning front-loaded where an agent will see it before deciding to call. Every clause carries information — no restatement of the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and annotations declare the mutation profile, the description supplies the two things structured data cannot: the experimental-risk caveat and the success-verification rule. What is missing is failure behavior — whether a failed verification leaves an orphaned sequence, and whether the preset path is validated before mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so name, preset_path, idempotency_key and the two guard objects are already documented in the schema. The description only adds the constraint that preset_path must point at a .sqpreset file; the idempotency_key interplay and the CEP guards are not mentioned at all, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — create a new sequence from a .sqpreset file via qe.project.newSequence — which distinguishes it in practice from create_sequence and create_sequence_from_clips. However, it never names those siblings explicitly, so the differentiation is left to inference from the names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'from a specific preset file (.sqpreset)': an agent can infer this is the tool to call when it has a preset rather than a set of clips. There is no explicit when-not guidance, no statement of prerequisites (preset file must exist on disk), and no named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_smart_binCreate Smart BinA

Create a smart bin (search bin) and inspect its new identity and name. The stored search query has no getter, so creation reports committed_unverified with identity verification separately.

NameRequiredDescriptionDefault
nameYesName for the smart bin
queryYesSearch query for the smart bin
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare that this is a non-read-only, non-destructive, closed-world operation, so the description does not need to restate that. It adds valuable behavior beyond the annotations: the stored search query has no getter and creation reports committed_unverified with identity verification handled separately. That is meaningful operational context for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with the core action and the important verification caveat front-loaded. There is no unnecessary repetition or padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return formatting need not be explained. The description covers the unusual verification semantics that an agent should know about. The remaining complexity in the nested guard and idempotency parameters is fully documented in the schema, making the definition broadly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all five parameters, including the nested guards and idempotency key. The description only indirectly touches semantics by noting that the stored query cannot be retrieved later; it does not add material meaning for the other parameters. The high coverage supports the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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: creating a smart bin, explicitly glossed as a search bin. It also mentions inspecting the new identity and name. It does not explicitly distinguish this from the sibling create_bin, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as create_bin or search_project_items. The purpose implies creation, but no exclusions or selection criteria are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_source_freeze_frameCreate Source Freeze FrameA

Create a freeze frame from a project item at a SOURCE-media time (not a sequence time; for a sequence time use freeze_frame). Decodes the frame with ffmpeg from the item's media file (requires ffmpeg/ffprobe on PATH; no Source Monitor or QE state is used), refuses to overwrite an existing output file, imports the still and sets its Out mark to duration_seconds. Optional place puts it on an empty range of one video track (refuses an occupied or locked range rather than overwriting); optional zoom (requires place) adds Motion Scale and optional Position keyframes at the clip's first and last frame for a punch-in. Every step is read back; partial success reports which steps were committed but not verified. Refuses before any change when the item has no readable local media, the time is past the media end, or the item's interpreted frame rate differs from the file's.

NameRequiredDescriptionDefault
zoomNoOptional punch-in keyframes on the placed clip's Motion effect (requires place). Scale is percent as Premiere reports it for the placed still; Position is in sequence pixels.
placeNoOptional placement on the active sequence. The range must be empty; nothing is overwritten.
output_pathYesNew .png, .jpg or .jpeg path for the frame. Must not exist; its folder must exist.
source_item_idYesNode ID (preferred) or exact name of the source video project item.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoLength of the still in seconds, written as its Out mark and read back (default 2, at most 3600).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
source_time_secondsYesSeconds from the first frame of the source media (media time zero, not its start timecode and not its In mark). Snapped down to the item's frame grid.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses many behaviors beyond the annotations: ffmpeg decoding, refusal to overwrite, refusal to place on occupied or locked ranges, validation before any change, read-back verification, and partial-success reporting. It does not contradict the annotations and adds substantial operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded: purpose, alternative tool, prerequisites, overwrite behavior, optional placement/zoom, and refusal conditions. Every sentence carries operational information, and none is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity, 9 parameters, annotations, and an output schema, the description covers the essential agent-facing concerns: source-time semantics, prerequisites, safety/refusal behavior, optional placement and zoom, and partial-success outcomes. Remaining parameter details are well covered by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents most parameter details. The description still adds useful cross-parameter semantics, notably that source_time_seconds is media time zero rather than sequence time or In mark, that zoom requires place, and that duration_seconds becomes the clip Out mark.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: it creates a freeze frame from a project item. It immediately distinguishes source-media time from sequence time and explicitly routes sequence-time use to the sibling tool freeze_frame.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool versus the alternative freeze_frame, and it also names the operational context: ffmpeg/ffprobe on PATH, no Source Monitor or QE state. This is unusually clear routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_subclipCreate SubclipA

Create a subclip from a project item with in/out points. Returns the new item's nodeId and reads its stored range back from Premiere project metadata: outcome verified when the observed in/out seconds are within one media frame of the request, otherwise committed_unverified.

NameRequiredDescriptionDefault
nameYesName for the subclip
item_idYesNode ID or name of the source project item
in_secondsYesIn-point in seconds
out_secondsYesOut-point in seconds
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic mutation profile (readOnly=false, destructive=false, idempotent=false), while the description adds real value: it states that the range is read back from project metadata and defines the precise success criterion (within one media frame) plus the committed_unverified fallback outcome. It still omits what happens on outright failure and how the guard parameters affect execution, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, followed immediately by return/verification semantics. Dense and mostly waste-free, though the second sentence packs several concepts (nodeId, read-back, tolerance, fallback status) that could be split for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists and the description still summarizes the return (nodeId) and the verification outcome states. Combined with the exhaustive schema for idempotency and CEP guard parameters and the mutation annotations, an agent has enough to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters including idempotency_key and the expected_cep_target guard tree. The description only re-states the in/out point role and adds the one-frame tolerance, so it meets but does not exceed the baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ("Create a subclip") plus the source ("from a project item") and the defining inputs (in/out points). It is clearly distinct from timeline-editing siblings, though it does not explicitly contrast itself with neighbors like create_subsequence or nest_clips.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description defines what a subclip is but gives no when-to-use guidance, no prerequisites, and no alternatives (e.g., create_subsequence, create_sequence_from_clips, duplicate_clip). An agent must infer the selection conditions from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_subsequenceCreate SubsequenceA

Create a separate subsequence from selected clips or a time range. This Premiere API does not replace the original timeline clips with a nested-sequence reference.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
ignore_track_targetingNoWhether to ignore track targeting (default: false)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The second sentence discloses a genuine behavioral fact beyond the annotations: the source timeline is left intact rather than being swapped for a nested-sequence reference, which resolves a common ambiguity for a tool annotated destructiveHint=false. It stays silent on the preconditions the schema hints at (idempotency, expected project/CEP identity guards, refusal behavior) and on what happens to the new sequence, so coverage is partial rather than rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the primary action first, then the one caveat an agent could get wrong. No restated title, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the schema covers the guard parameters. But for a mutation that creates a new sequence, the description never says where the subsequence lands (bin, project root), how it is named, or what happens to the current selection — gaps an agent would hit immediately after the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including the very detailed idempotency_key and expected_cep_target) are already documented in structured data. The description contributes one useful semantic nuance — that the clip/range input comes from the current selection rather than a parameter — but adds nothing about the guard or targeting parameters. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (create a subsequence) plus the two input modes (selected clips or a time range), which is far more than the title restates. It does not, however, distinguish itself from close siblings such as nest_clips, create_subclip, create_sequence_from_clips or duplicate_sequence, so an agent must still reason about which to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"From selected clips or a time range" implies the trigger conditions, but nothing says when to prefer this over nest_clips (the obvious alternative for turning a range into a nested sequence) or when not to use it. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crop_clipCrop ClipB

Apply or update Premiere's Crop effect on one video clip and read back every requested value. Adding Crop uses the legacy QE catalog only when the clip does not already contain it.

NameRequiredDescriptionDefault
topNoPercent cropped from the top edge.
leftNoPercent cropped from the left edge.
zoomNoWhether Crop should scale the remaining image to fill the frame.
rightNoPercent cropped from the right edge.
bottomNoPercent cropped from the bottom edge.
node_idYesTimeline video-clip node ID.
edge_featherNoCrop edge feather percentage.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false), so the description only needs to add context. It does add two useful traits: values are read back after the edit, and adding Crop falls back to the legacy QE catalog only when the effect is absent. It says nothing about what happens to existing keyframes/settings when updating, permissions, or failure modes, and never mentions the idempotency/expected-identity guard parameters that dominate this tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero padding, with the core action front-loaded and the conditional QE detail placed second. The second sentence is slightly cryptic ('legacy QE catalog') but it earns its place as behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is fully documented, so return values and parameter meanings are covered elsewhere. However, for a 10-parameter mutation tool with a nested CEP identity guard, the description leaves the safety/guard story and update-vs-add side effects entirely to the schema, which is a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including top/left/right/bottom/edge_feather/zoom, idempotency_key, and expected_cep_target is fully documented in the schema. The description adds no parameter-level meaning beyond it; per the coverage rule, 3 is the correct baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource pair ('Apply or update Premiere's Crop effect') scoped to 'one video clip', which is far more specific than the generic apply_effect or set_effect_property siblings. It does not explicitly say when to prefer this over those generic effect tools, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose ('on one video clip'), and the second sentence hints at the add-vs-update distinction. But there is no explicit guidance on when to use this instead of apply_effect, set_effect_property, or batch_apply_effect, and no stated prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_binDelete BinA
Destructive

Delete a bin (folder) and everything inside it from the project panel, and read back that it is gone. Deleting a bin also removes its media's clips from every sequence and deletes sequences stored in the bin, so a bin whose contents are used on a timeline — including a Sequences bin whose media lives elsewhere — is refused unless confirm_remove_from_sequences is true; the refusal lists the sequences and tracks (see find_item_usages). Bins holding offline media are refused unless allow_offline is true.

NameRequiredDescriptionDefault
bin_idYesName or node ID of the bin to delete
allow_offlineNoAlso delete a bin that holds offline (missing-media) items. Premiere can open a modal while deleting missing media, which blocks every later bridge command until it is closed (default: false).
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
confirm_remove_from_sequencesNoDelete even when something inside the bin is used in a sequence, which also removes those timeline clips (default: false).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the destructiveHint=true annotation by disclosing the full blast radius: media clips are removed from every sequence, sequences stored in the bin are deleted, and even a Sequences bin whose media lives elsewhere is blocked. It also describes the refusal payload (lists sequences and tracks) and a read-back verification step, which is exactly the context a destructive tool needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the primary action and its consequence before the two refusal conditions. Dense but every clause carries operational weight; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, six-parameter tool with nested guard objects and an output schema, the description covers effects, refusal modes, the flags that override them, and verification of success. Return-value detail is correctly left to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both behavioral flags and the idempotency/guard objects are already documented in the schema. The description restates the effect of confirm_remove_from_sequences and allow_offline without adding syntax or edge-case detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Delete a bin (folder) and everything inside it from the project panel' — with a scope that separates it from generic item deletion. It does not explicitly name the sibling it is not (delete_project_item / delete_multiple_project_items), so an agent must infer the bin-vs-item boundary from the noun alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-it-refuses conditions tied to specific flags: contents used on a timeline require confirm_remove_from_sequences=true, offline media requires allow_offline=true. It also routes the agent to find_item_usages to discover the blocker, though it never states the inverse precondition (e.g. check usages first) or names a sibling alternative for non-bin deletions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_markerDelete MarkerA
Destructive

Delete a marker at a specific time position. EXPERIMENTAL (QE DOM): the receipt reports undoStackIndex movement, which does not prove QE can reverse the marker. Every marker attempt protects an engine undo boundary; undoTracked:false means the marker did not observably advance the QE index.

NameRequiredDescriptionDefault
node_idNoOptional clip node ID (deletes from sequence if omitted). Premiere 25.2.3 timeline clips have no marker collection, so this refuses there.
time_secondsYesTime position of the marker to delete
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive and non-idempotent, but the description adds meaningful behavioral context: the operation is experimental (QE DOM), undoStackIndex movement does not prove reversibility, and undoTracked:false has a specific meaning. This goes beyond what annotations alone convey, though it remains somewhat cryptic about overall failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core action before the experimental caveat. The later sentences are dense but relevant to understanding the tool's behavioral limitations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given rich schema descriptions, an output schema, and annotations covering safety, the description provides the essential extra context about the experimental QE DOM behavior and undo tracking. It does not explain the guard parameters, but the schema already does so thoroughly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters, including node_id, idempotency_key, and the expected CEP guards. The description adds little parameter-specific meaning beyond 'at a specific time position' for time_seconds, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Delete a marker at a specific time position.' This clearly distinguishes it from add_marker, update_marker, and list_markers, though it does not explicitly name those siblings or mention clip-vs-sequence scope beyond the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no explicit when-to-use or when-not-to-use guidance, and it does not point to alternatives like update_marker or list_markers. Usage is only implied by the verb 'delete'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_multiple_project_itemsDelete Multiple Project ItemsA
Destructive

Delete several project items (bins, sequences, clips or files) and read back that each is gone. Every item is checked before any is deleted. organize_project_items_uxp with action 'remove' (authenticated UXP bridge) is the preferred, documented route; this CEP fallback deletes clips and files through a temporary bin, which cannot be undone here. Items (or bins whose contents are) used on a timeline are refused unless confirm_remove_from_sequences is true. Nested sequences count as in use on the parent timeline.

NameRequiredDescriptionDefault
item_idsYesArray of node IDs or names of items to delete
allow_offlineNoAlso delete offline (missing-media) items. Premiere can open a modal while deleting missing media, and the modal blocks every later bridge command until it is closed in Premiere, so these are refused by default (default: false).
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
confirm_remove_from_sequencesNoDelete even when an item (or something inside a bin) is used in a sequence, which also removes those timeline clips (default: false).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint annotation: all-or-nothing checking before any deletion, the temporary-bin mechanism for clips/files, an explicit 'cannot be undone here' warning, and the refusal rule for timeline-used items with the non-obvious detail that nested sequences count as in use on the parent timeline. These are precisely the irreversible-consequence facts an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each carrying distinct decision-relevant information: what, preferred alternative, fallback risk, and the refusal condition. The routing information is front-loaded and there is no restatement of the title or boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive multi-item delete with nested guard objects, the description covers the safety profile, the alternative route, irreversibility, and the confirmation escape hatch, while the exhaustive schema and an output schema handle parameters and return values. Nothing an agent needs in order to call it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns an extra point by adding semantics the schema does not spell out, namely that confirm_remove_from_sequences also removes timeline clips and that nested sequences count as in-use. It says nothing extra about item_ids (IDs vs names), expected_cep_target, or expected_project_path, leaving those entirely to the already-detailed schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (delete several project items), enumerates the item kinds (bins, sequences, clips, files), and adds the verification behavior ('read back that each is gone'). It explicitly contrasts itself with a named sibling route, so an agent can distinguish it without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the preferred alternative (organize_project_items_uxp with action 'remove', authenticated UXP bridge) and positions this tool as the CEP fallback, which is exactly the when-to-use/when-to-prefer-something-else guidance needed. It also gives the precondition that gates destructive scope: timeline-used items are refused unless confirm_remove_from_sequences is true.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_preview_filesDelete Preview FilesA
Destructive

Request preview/render cache deletion through experimental QE DOM. A false return fails; other returns remain committed_unverified because no cache-file readback is available.

NameRequiredDescriptionDefault
media_typeNoType of preview files to delete: 'video', 'audio', or 'all' (default: 'all')
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and non-idempotency, but the description adds real value beyond them: it explains that a false return means failure while other returns stay 'committed_unverified' because no cache-file readback exists, and that the underlying path is experimental. That is precisely the outcome-uncertainty an agent needs before calling a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler, purpose front-loaded before the outcome caveat. The second sentence is densely compressed but every clause (false = failure, others = unverified, reason = no readback) carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A destructive mutation with an output schema in place, so return formatting is covered elsewhere; the description focuses on the genuinely missing piece, namely that success cannot be verified. What remains unsaid — whether an open project or QE DOM support is required, and whether the media_type default applies when omitted — is documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters (media_type, idempotency_key, expected_cep_target, expected_project_path) are fully documented in the schema, so baseline 3 applies. The description adds nothing about parameter behavior — notably it never connects the per-call idempotency key to the unverified-outcome caveat it describes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource: it requests deletion of preview/render cache files, and it discloses the mechanism (experimental QE DOM), which signals a best-effort rather than a direct file-system operation. It does not name any sibling to differentiate from, but no sibling in the list performs the same cache-clearing role, so ambiguity is low.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the resource name — an agent infers this is for clearing preview/render caches. There is no explicit statement of when to use it versus alternatives (e.g., deleting proxy media vs. render previews), and no prerequisites such as an open project or QE DOM availability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_project_itemDelete Project ItemA
Destructive

Delete a project item (bin, sequence, clip or file) from the project panel and read back that it is gone. organize_project_items_uxp with action 'remove' (authenticated UXP bridge) is the preferred, documented route. This CEP fallback deletes a clip or file by moving it into a temporary bin and deleting that bin, which cannot be undone here. Deleting media also removes its clips from every sequence, so an item (or a bin whose contents are) used on a timeline is refused unless confirm_remove_from_sequences is true. A sequence nested on another timeline is refused the same way.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item to delete
allow_offlineNoAlso delete offline (missing-media) items. Premiere can open a modal while deleting missing media, and the modal blocks every later bridge command until it is closed in Premiere, so these are refused by default (default: false).
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
confirm_remove_from_sequencesNoDelete even when the item (or something inside the bin) is used in a sequence, which also removes those timeline clips (default: false).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, but the description goes well past them: it discloses the underlying mechanism (temp bin + delete), that the action cannot be undone here, and the non-obvious cascade that deleting media strips its clips from every sequence. The conditional refusal semantics are exactly the kind of behavioral context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five sentences, each load-bearing: purpose and verification, preferred alternative, mechanism plus irreversibility, the sequence-usage guard, and the nested-sequence guard. It is front-loaded with the action and the alternative route before any caveats, so an agent can decide early.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, nested-schema, idempotency-supporting tool, the description covers the decision-relevant surface: why to prefer the UXP route, what cannot be reversed, what cascades, and when the call will be refused. An output schema exists, so omitting return-value detail costs nothing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented and the baseline is 3. The description adds genuine meaning for confirm_remove_from_sequences by framing it as "delete even when the item is used in a sequence, which also removes those timeline clips" – the consequence rather than the flag name – though allow_offline, idempotency_key, expected_cep_target and expected_project_path are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the item kinds covered ("bin, sequence, clip or file") and the location it acts on (the project panel), and adds the post-condition that removal is read back. It names the sibling route it is not (organize_project_items_uxp) and the implementation family (CEP fallback), so an agent can separate it from delete_bin, delete_sequence and delete_multiple_project_items without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: organize_project_items_uxp with action 'remove' is the "preferred, documented route" and this is the fallback, which is a direct when-to-use/when-not-to-use statement. It also names the two refusal conditions (item used on a timeline without confirm_remove_from_sequences, and a nested sequence) that determine whether the call can succeed at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_sequenceDelete SequenceA
Destructive

Delete a sequence from the project and read back that it is gone. A sequence nested on another timeline is refused unless confirm_remove_from_sequences is true, matching delete_project_item; deleting it would remove or orphan those nested clips.

NameRequiredDescriptionDefault
sequence_idYesSequence name or ID to delete
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
confirm_remove_from_sequencesNoDelete even when this sequence is nested on another timeline, which also removes those nested clips (default: false).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds real value beyond that: it verifies the postcondition by reading back that the sequence is gone, discloses the cascade (nested clips are removed or orphaned), and names the guard flag. It omits undo/permission behavior and the expected_cep_target/expected_project_path refusal semantics, which the schema covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the action and its verification come first, followed immediately by the exception and its risk. No filler, no restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need not be described, and the description covers the destructive outcome and the one guard condition. It could say what happens to the active sequence or whether the deletion is undoable, but 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description restates the meaning of confirm_remove_from_sequences with the consequence of orphaning nested clips, but that largely duplicates the schema's own wording, and the idempotency and expected-identity guards are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete a sequence from the project") plus the postcondition read-back, and contrasts its behavior with the sibling delete_project_item for nested sequences. An agent can immediately tell this is sequence-level deletion, not project-item or bin deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the operative condition: a sequence nested on another timeline is refused unless confirm_remove_from_sequences is true, which is exactly the decision point an agent faces. It does not name the alternative to use when a sequence should merely be closed or when a project item should be deleted instead, so 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.

delete_trackDelete TrackA
Destructive

EXPERIMENTAL (undocumented QE DOM: removeVideoTrack/removeAudioTrack). Delete a video or audio track from the active sequence through QE and verify that exactly that track was removed (the remaining tracks keep their clips, custom names and lock/mute state in order). Refuses a track that still holds clips unless force is true. Caption tracks cannot be deleted (no host API); a caption track_type is refused with the manual route.

NameRequiredDescriptionDefault
forceNoAlso delete a track that holds clips, removing those clips (default: false)
track_typeYesType of track to delete
track_indexYesIndex of the track to delete (0-based)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: flags the EXPERIMENTAL reliance on undocumented QE DOM (removeVideoTrack/removeAudioTrack), describes the post-delete verification that remaining tracks keep clips, names and lock/mute state in order, and states the exact refusal conditions. Destructive/irreversible consequences of force are spelled out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the EXPERIMENTAL warning before the operation, then constraints and refusals in a few dense sentences. No filler and nothing restated from the schema beyond what adds meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, nested-schema mutation tool with an output schema and destructiveHint already declared, the description supplies the remaining essentials: experimental status, verification behavior, force semantics, and the caption-track limitation. Nothing an agent needs before calling is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3; the description still adds meaning by explaining that force gates deletion of a populated track and that a caption track_type is rejected. It adds nothing about idempotency_key or the expected_cep_target/expected_project_path guards, but those are fully documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: delete a video or audio track from the active sequence, with post-delete verification. It is clearly distinct from add_track, add_tracks, mute_track and rename_track, but never explicitly names an alternative or delimit against clip-removal tools like remove_selected_clips.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete conditions and exclusions: refuses a track that still holds clips unless force is true, and refuses caption tracks with a pointer to a manual route. It lacks explicit when-to-use routing against siblings, but the preconditions are clear enough to guide invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deselect_all_clipsDeselect All ClipsC

Deselect all clips in the active sequence.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is covered. The description adds only the scope phrase 'in the active sequence'; it never says whether the deselection is undoable, what happens when nothing is selected, or whether collapse of a selection affects other tools' state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, and the scope qualifier is placed where it matters. It is efficient, though the brevity borders on under-specification rather than true tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the parameter schema is fully documented, so the description needn't explain return values. However, for a state-mutating selection tool with an idempotency guard and CEP identity preconditions, one sentence leaves the agent without context on sequencing, retries or guard usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters (idempotency_key, expected_cep_target, expected_project_path) carry full schema descriptions at 100% coverage, so the schema does the heavy lifting. The description contributes nothing about when an agent should supply the CEP guard or an idempotency key, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (deselect) plus resource (all clips) and scope (active sequence), so an agent can immediately tell it apart from select_all_clips, invert_selection and select_clips_by_name. It stops short of explicitly naming those alternatives, so it is clear but not maximally differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus sibling selection tools (select_all_clips, invert_selection, set_clip_selection) and no mention of prerequisites such as needing an active sequence open. The agent must infer usage purely from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detach_proxyDetach ProxyA

Detach/remove the proxy from a project item and read hasProxy back; unavailable readback reports committed_unverified.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description's real contribution is the post-condition guarantee: the proxy state is read back, and when readback is unavailable the result is reported as committed_unverified. That is a genuinely useful outcome caveat for a mutating tool. It stops short of saying what happens to the underlying media or the proxy file itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence that front-loads the action and then the readback condition. Every clause carries information; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value detail is not needed, and the description usefully explains the committed_unverified status it may surface. It leaves the alteration itself slightly underspecified — no mention that only the proxy association is removed and the original media is untouched — which is the one meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested expected_* guard objects and idempotency_key are thoroughly documented in the schema. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (detach/remove) and resource (the proxy on a project item), which clearly separates it from the read-only sibling has_proxy and from the broader manage_proxies. It never names those siblings, so differentiation is inferable rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus manage_proxies or how it relates to attach flows; the agent must infer from the tool name. The only contextual cue is that it reads hasProxy back afterward, which is about behavior, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_active_picture_boundsDetect Active Picture BoundsB

Detect the most frequent active-picture crop rectangle in decoded video, exposing probable letterbox or pillarbox bars without modifying the source.

NameRequiredDescriptionDefault
limitNoCropdetect black threshold from 0 through 255 (default: 24)
use_cacheNoOpt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.
media_pathYesExisting local video file
sample_secondsNoDecode sample duration from 1 through 300 seconds (default: 30)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
analysis_revisionNoOptional project/timeline revision to isolate otherwise-identical analysis inputs.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The clause 'without modifying the source' usefully reassures that the media is untouched, and 'decoded video' hints at decode cost. However, annotations set readOnlyHint=false and idempotentHint=false, and the description never explains why (e.g. cache writes on disk, no dedup) — leaving a genuine ambiguity an agent must resolve. It also omits sampling behavior and the 256 MiB uncached threshold.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense, front-loaded sentence identifying the operation, the artifact produced, and the non-destructive property. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described, and all params are schema-documented. But an 8-parameter tool with nested CEP identity guards and idempotency machinery is never addressed by the description, and the readOnlyHint=false tension is left unexplained — an agent cannot tell whether to pass expected_project_path here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 and the schema already documents threshold, sample_seconds, cache, and the identity guards. The description adds nothing about parameters: no explanation of sample_seconds tradeoffs, use_cache, or when expected_cep_target/expected_project_path matter for what looks like a local-only analysis.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: detect the most frequent active-picture crop rectangle, exposing letterbox/pillarbox bars. That is precise enough to separate it from analysis siblings like analyze_video_qc or read_video_scopes, though it never names an alternative to route against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not-to-use, or named alternative. Usage is only implied (inspect for bars before cropping); the agent gets no guidance on when this is preferable to analyze_video_qc, inspect_media_streams, or crop_clip.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_audio_transientsDetect Audio TransientsA

Find probable beat or edit-point transients from decoded audio peaks. Returns candidates for editorial review; it does not claim musical beat-grid accuracy or change a timeline.

NameRequiredDescriptionDefault
use_cacheNoOpt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.
media_pathYesExisting local audio or video file
maximum_eventsNoMaximum returned candidates from 1 through 1000 (default: 200)
threshold_dbfsNoMinimum transient peak from -60 through 0 dBFS (default: -12)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
analysis_revisionNoOptional project/timeline revision to isolate otherwise-identical analysis inputs.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
minimum_interval_secondsNoMinimum spacing from 0.05 through 10 seconds (default: 0.25)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=false and idempotentHint=false; the description adds genuinely new context by framing results as 'probable' candidates and stating that the tool does not change a timeline, which manages expectations about accuracy and side effects. It stops short of disclosing the caching behavior, performance profile, or that the operation is local-only — all of which the schema implies but the prose does not reinforce.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, purpose front-loaded in the first clause, and the second sentence is a compact scope/expectation disclaimer rather than filler. Nothing is redundant with the title and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be documented; the nested expected_cep_target and idempotency_key parameters are fully described in the schema. The description supplies the remaining agent-critical context: what is analyzed, that results are candidates rather than authoritative beats, and that no timeline change occurs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including detailed notes on caching, idempotency, thresholds and interval bounds, so the schema carries the parameter burden entirely. The description contributes nothing beyond the phrase 'decoded audio peaks', so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource — 'Find probable beat or edit-point transients from decoded audio peaks' — which is concrete and distinguishable from generic analysis tools. It implicitly carves out space from detect_beats with 'does not claim musical beat-grid accuracy', but it never names that sibling, so an agent must infer the distinction rather than being routed to it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Returns candidates for editorial review' implies the intended use (marking edit points for a human to review) and the disclaimer hints at a boundary versus a beat-detection tool. However, there is no explicit when-to-use/when-not statement and no named alternative such as detect_beats or detect_silence, leaving the routing decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_beatsDetect BeatsA

Estimate a steady beat grid from a local audio or video file without changing Premiere. FFmpeg decodes at most 30 minutes to a bounded mono analysis stream; local onset autocorrelation returns BPM, phase-aligned beat times, confidence, and half/double-time alternatives.

NameRequiredDescriptionDefault
max_beatsNoMaximum beat times returned (default: 500).
media_pathYesAbsolute path to an existing local audio or video file.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the thin annotations: it discloses the 30-minute decode cap, mono bounded analysis stream, the onset-autocorrelation method, and that half/double-time alternatives are returned — all material for interpreting confidence. The one wrinkle is that it stresses 'without changing Premiere' while annotations set readOnlyHint=false and idempotentHint=false; this is a tension rather than a hard contradiction, since the schema's idempotency guard implies the framework treats it as a deductible operation, but the agent is given no explanation of why a read-only-looking analysis carries an idempotency key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both information-dense and front-loaded: the first gives purpose and non-mutation scope, the second gives the mechanics and the return shape. No filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't enumerate return fields, and it correctly focuses on cost/limits and method. What is missing is a hint about follow-on use (this produces analysis only, nothing is written to the timeline) and why the CEP guard parameters exist on a local tool — small gaps for a 5-parameter tool with nested objects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including a very thorough idempotency_key and the expected_cep_target/expected_project_path guards, so the schema does the heavy lifting and the baseline applies. The description adds real meaning for media_path (30-minute cap, mono downmix, local-only) but says nothing about max_beats or how the guard parameters interact with a purely local analysis.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Estimate a steady beat grid from a local audio or video file') plus what it returns (BPM, phase-aligned beat times, confidence, half/double-time alternatives). That output signature separates it cleanly from neighbors such as detect_audio_transients, analyze_loudness, and detect_silence without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without changing Premiere' plus 'local file' implicitly tells the agent this is a stand-alone analysis step, but there is no explicit when-to-use direction and no named alternative. An agent must infer that this feeds downstream planning tools like plan_beat_montage and that detect_audio_transients is the different (onset-level) option.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_motion_peaksDetect Motion PeaksB

Find probable high-motion moments in a bounded local video sample from decoded frame differences. Read-only editorial candidates; camera movement, flashes, cuts, and subject motion are not semantically distinguished.

NameRequiredDescriptionDefault
thresholdNoMinimum mean luma-frame difference from 0 through 255 (default: 12)
use_cacheNoOpt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.
media_pathYesExisting local video file
maximum_eventsNoMaximum returned candidates from 1 through 1000 (default: 200)
sample_secondsNoDecode duration from 1 through 300 seconds (default: 60)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
analysis_revisionNoOptional project/timeline revision to isolate otherwise-identical analysis inputs.
samples_per_secondNoFrame samples per second from 1 through 10 (default: 4)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
minimum_interval_secondsNoMinimum peak spacing from 0.1 through 30 seconds (default: 1)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description asserts 'Read-only editorial candidates' while annotations declare readOnlyHint=false, which directly contradicts the read-only framing and will confuse an agent assessing side effects. The useful caveat about non-distinguished motion types is outweighed by this inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the primary action and immediately followed by the most decision-relevant caveat. No wasted phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 params, a nested expected_cep_target, and an output schema, the description is thin — it never explains the guard/idempotency machinery or why an 'edit' key exists on a supposedly read-only analysis tool. Functional for a call but leaves the read-only vs readOnlyHint=false ambiguity unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 11 parameters including the complex expected_cep_target guard and idempotency_key are documented in-schema. The description only loosely adds 'bounded sample' and 'frame differences', leaving the edit-oriented idempotency_key and CEP guard to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Find) and resource (high-motion moments) plus the method (decoded frame differences), which is enough for an agent to distinguish it from motion-adjacent siblings like detect_scene_edits or analyze_video_qc. The caveat that cuts/flashes/camera/subject motion aren't semantically distinguished sharpens the boundary, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'bounded local video sample' and 'editorial candidates' imply when to reach for it (scouting a local clip), but there is no explicit when-not or pointer to alternative detection tools. The agent is left to infer the choice among many detection siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_repeated_takesDetect Repeated TakesA
Read-onlyIdempotent

Detect repeated sentence takes (retakes) in a word timeline using token similarity within a time window, and plan removal of all but the kept take. Returns take groups, removal and keep ranges, and apply routes. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
keepNoWhich take in each group to keep; defaults to last.
min_wordsNoMinimum tokens a sentence needs before it is compared; defaults to 4.
frame_rateNoTimebase used to snap ranges to whole frames; defaults to 30.
max_groupsNoMaximum take groups to return; defaults to 64.
handle_framesNoFrames of handle left inside each removal so cuts are not tight; defaults to 1.
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
max_gap_secondsNoOnly sentences starting within this many seconds of an earlier candidate are compared; defaults to 20.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
similarity_thresholdNoToken Jaccard/containment similarity needed to group two sentences; defaults to 0.8.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description still adds real value by saying the tool only plans removal and never touches Premiere, and that it emits apply routes rather than performing edits. It does not discuss costing, limits, or how grouping degrades on ambiguous repeats, so it is not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and mechanism, then outputs, then the safety constraint. No filler and no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema covering take groups, keep/removal ranges, and apply routes, the description need not explain return values; it correctly points to them and adds the local-only scope. What is missing is how the results are meant to be consumed (which apply/preview tool routes them) and the required provenance of word_timeline, so an agent still has to infer the downstream step.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (keep, similarity_threshold, max_gap_seconds, handle_frames, frame_rate, expected_cep_target, etc.) is documented in the schema. The description only alludes loosely to 'token similarity within a time window' and 'the kept take', adding no defaults, interaction notes, or edge-case behavior beyond what the schema already says. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('detect repeated sentence takes (retakes) in a word timeline') plus the mechanism (token similarity within a time window) and the output/next step (plan removal of all but the kept take). That clearly separates it from generic analysis tools, but it never names a sibling such as plan_filler_word_removal or analyze_dialogue_edit_candidates, so an agent must infer the boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Local-only; never changes Premiere' implies this is a planning pass whose results feed a separate apply step, which nudges the agent toward the right workflow. However, there is no explicit when-to-use/when-not-use guidance, no stated prerequisite that word_timeline must come from get_clip_transcript_uxp, and no mention of alternatives or follow-up tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_scene_editsDetect Scene EditsB

Safe scene-edit facade. It uses the authenticated Premiere UXP bridge when connected and explicitly confirmed; CEP fallback is intentionally withheld because synchronous scene detection can block the panel.

NameRequiredDescriptionDefault
modeYesHow Premiere should materialize detected edits on the current native selection.
operation_idNoOptional idempotency key sent to the UXP bridge.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
confirm_non_undoableYesMust be true because the host operation mutates the project and is not claimed undoable.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it discloses the backend gating (UXP bridge only, requires explicit confirmation) and the reason CEP is refused (synchronous detection blocks the panel), which is exactly the kind of failure-mode context annotations cannot express. It stops short of describing what state is mutated or how the panel behaves on retry, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler, and the backend/confirmation constraint is front-loaded after the label. The leading label is weak, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It covers the critical call-correctness gate (UXP connection + explicit confirmation) for a 6-parameter mutating tool, and the schema plus output schema handle parameters and returns. Still missing: what is actually detected, that a native selection is required, and any hint that the three modes produce very different timeline results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including a detailed idempotency_key and confirm_non_undoable description, so the schema carries parameter meaning. The description adds nothing about mode choice, the required confirmation flag, or the CEP-only guard objects, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Safe scene-edit facade" describes the tool's architectural role, not the operation: it never states that it detects scene edits on the current selection and materializes them as cuts, markers or subclips (that only appears in the schema's enum). With siblings like scene_edit_detection, detect_source_scene_changes and plan_scene_segments present, the lack of any differentiation leaves the agent guessing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real preconditions: the UXP bridge must be connected and the operation explicitly confirmed, and the CEP fallback is withheld. But it names no alternative tool or condition for choosing this over the sibling detection tools, so routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_silenceDetect SilenceA

Find silent ranges in a media file and return both the silences and the complementary segments worth keeping. Analysis only — nothing in the project or on the timeline is modified. Requires ffmpeg on PATH: Premiere's scripting API exposes no audio-level or waveform data, so silence cannot be measured through the bridge.

NameRequiredDescriptionDefault
media_pathNoAbsolute path to the media file to analyse. Provide this or project_item_id.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
project_item_idNoNode ID or name of a project item whose media path is resolved through Premiere. Provide this or media_path.
noise_threshold_dbNoLevel at or below which audio counts as silence, in dBFS. Closer to 0 is more aggressive (default: -30).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
min_duration_secondsNoShortest run of silence to report, in seconds (default: 1.5).
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real value beyond annotations: the environmental prerequisite (ffmpeg on PATH) and the architectural reason (no waveform data via the scripting API), plus a scoped side-effect claim that nothing in the project or timeline is modified. That claim is narrowly worded and doesn't contradict destructiveHint=false, but it sits in slight tension with readOnlyHint=false — the description never says whether anything is written to disk (which the idempotency_key's 'intended edit' language hints at).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero waste: purpose and return shape first, side-effect scope second, prerequisite and its justification third. Front-loaded and each sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need no explanation, and annotations plus the parameter schema cover the rest. What remains thin is only the source-selector choice (path vs project item) for a 7-parameter tool with nested guard objects — minor given the 100% schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both selectors (media_path vs project_item_id) and the tuning knobs noise_threshold_db and min_duration_seconds are already fully documented in the schema. The description adds no threshold or duration meaning, and doesn't explain the either/or selection between the two source parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb and resource: 'Find silent ranges in a media file', plus an explicit statement of what comes back (silences plus complementary keep segments), which separates it from pure analysis siblings like analyze_loudness. It stops short of naming an alternative tool (e.g. plan_pause_tightening, detect_audio_transients), so it doesn't fully meet the sibling-differentiation bar for a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear conditions: it operates on a media file, it is analysis-only (results, not edits), and it needs ffmpeg on PATH, with the reason spelled out (the Premiere bridge exposes no audio-level data). It doesn't name when to prefer a different sibling such as the marker-planning or transient-detection tools, so no explicit alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_source_scene_changesDetect Source Scene ChangesA

Detect probable visual cuts in a local source file using FFmpeg scene scores. Read-only and source-relative; it does not cut a Premiere timeline.

NameRequiredDescriptionDefault
thresholdNoScene-score threshold from 0.01 through 1 (default: 0.3)
media_pathYesPath to an existing local video file
maximum_eventsNoMaximum returned changes (default: 500; maximum: 2000)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
minimum_interval_secondsNoKeep only the strongest event within this interval (default: 0.25)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description asserts 'Read-only', while the annotations declare readOnlyHint=false and idempotentHint=false — a direct conflict on the tool's most safety-relevant attribute. Additionally the schema's idempotency_key text says 'Read-only invocations are never deduplicated', so the tool's own structured fields disagree about whether this mutates anything. This is an annotation contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler. The affirmative scope comes first and the disambiguation second, which is the right order for an agent scanning many tools.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the schema documents all inputs. What the description supplies — local-file scope, FFmpeg method, no-timeline-side-effects — is close to sufficient, but it does not resolve which of the overlapping scene-detection siblings an agent should pick, which matters at this tool count.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with 7 well-documented parameters (threshold range and default, maximum_events cap, minimum_interval_seconds suppression window), so the schema carries the semantics. The description adds nothing about tuning scene detection — no guidance on what a threshold of 0.3 means or how minimum_interval_seconds interacts with maximum_events — so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource + scope: 'Detect probable visual cuts in a local source file using FFmpeg scene scores.' The second sentence pins the boundary ('Read-only and source-relative; it does not cut a Premiere timeline'), which separates it from the many timeline-editing siblings (scene_edit_detection, detect_scene_edits). An agent can tell what it produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the usage context clearly — a local file, not a Premiere sequence — and excludes the timeline-cutting interpretation. It stops short of naming the concrete alternative tools (detect_scene_edits, scene_edit_detection) and the condition that would select them over this one, which is the main remaining gap given how many scene/motion-detection siblings exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diff_sequence_snapshotsDiff Sequence SnapshotsA
Read-onlyIdempotent

Diff two sequence snapshots (from get_sequence_structure or inspect_sequence_structure_uxp) into added, removed, moved, trimmed, retimed, enabled, and renamed clip changes with frame deltas, per-track counts, and EDL-like timecode lines. Local-only; never reads or changes Premiere.

NameRequiredDescriptionDefault
afterYesLater sequence snapshot.
beforeYesEarlier sequence snapshot.
frame_rateNoFrame rate override for frame math and timecodes (1..240). Defaults to the snapshot frame rate or 30.
tolerance_framesNoDeltas of at most this many frames count as unchanged (default 0).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world; the description is consistent and usefully adds that the tool is purely local and never touches Premiere, plus that output includes frame deltas and timecode lines. It does not disclose the clip-matching heuristics (id vs. project_item_id for moves/repeated shots) or how tolerance_frames changes results, which are the main behavioral subtleties.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler: the first front-loads the operation and its full output surface, the second front-loads the locality/safety constraint. Every clause carries information an agent would otherwise have to infer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with deeply nested input and an output schema, the description covers purpose, source of inputs, output categories, and side-effect profile. What is missing is guidance on whether before/after must be the same sequence and how tolerance_frames affects classification, but these are secondary and partially covered by schema descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so before/after structure, frame_rate, tolerance_frames, and the CEP guard parameters are all documented in the schema itself. The description's only added semantic value is naming the tools that produce compatible snapshots, which the schema already restates. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (diff two sequence snapshots) and enumerates exactly what the diff produces: added, removed, moved, trimmed, retimed, enabled, renamed clip changes plus frame deltas, per-track counts, and timecode lines. It also names the sibling tools whose output feeds it (get_sequence_structure, inspect_sequence_structure_uxp), so an agent can immediately distinguish it from the snapshot-producing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent where the two inputs come from, which is the key precondition for calling it, and the 'Local-only; never reads or changes Premiere' clause tells the agent no host connection is involved. It stops short of explicitly excluding alternatives such as compare_cmx3600_edls or inspect_timeline_snapshot, so it is clear context rather than full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

duplicate_clipDuplicate ClipA

EXPERIMENTAL: Duplicate a timeline clip, with its linked audio/video partner, onto the first tracks above it that are empty for the clip's time range. The copy keeps the clip's source in point and visible duration, is placed with an overwrite edit (nothing ripples), and is read back. A post-write mismatch is committed_unverified; inspect the timeline or use Undo. Fails without changes when no free track is available; add one with add_tracks.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip to duplicate
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations only declaring readOnly=false and destructive=false, the description carries real behavioral weight: overwrite placement with no ripple, source in-point and visible duration preserved, read-back verification, and a named partial-success state (committed_unverified) with remediation via inspect or Undo. It also flags the tool as EXPERIMENTAL, which is not encoded anywhere in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The experimental flag and core action are front-loaded, followed by placement semantics, then atomicity and failure handling. Every sentence adds a decision-relevant fact; nothing is redundant with the annotations or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with an output schema covering the return payload, the description supplies exactly the missing pieces: placement behavior, ripple/overwrite semantics, verification outcome states, and the no-free-track failure path. An agent can call this correctly without further inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested expected_cep_target/idempotency_key semantics are already documented in the schema, so the baseline of 3 applies. The description adds nothing about node_id or the pre-check guard parameters beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (duplicate a timeline clip) plus the precise scope: it also duplicates the linked audio/video partner and places the copy on the first empty tracks above the original. This is distinguishable from siblings like move_clip, overwrite_clip, or copy_effects_between_clips at a glance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the failure condition (no free track → fails without changes) and points to the correct remedy, add_tracks. It does not explicitly contrast against related edit tools like move_clip or overwrite_clip, but the when-to-use context is clear from the placement rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

duplicate_sequenceDuplicate SequenceC

Duplicate an existing sequence

NameRequiredDescriptionDefault
sequence_idYesSequence name or ID to duplicate
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, and the description adds nothing on top of that. Key behaviors an agent would want are unstated: where the copy is created (same bin?), how it is named, whether it becomes the active sequence, and whether the copy is made on disk or in memory. No contradiction with annotations, but near-zero added value 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler, and the verb+object is front-loaded. It is efficient, though the brevity borders on under-specification rather than disciplined conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool takes a nested CEP identity guard that can refuse the command, plus an idempotency key with retry semantics, yet the description mentions neither; an agent could easily call without the guard or mishandle retries. The output schema covers return values, but the mutation semantics unique to this tool are left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so sequence_id, idempotency_key, expected_cep_target and expected_project_path are all documented in the schema itself. The description adds no meaning beyond that, which lands at the baseline 3 for a fully-covered schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Duplicate') and resource ('an existing sequence'), so the intent is unambiguous. However, it offers no differentiation from nearby siblings such as create_subsequence, import_sequences, create_sequence, or duplicate_clip, which an agent must disambiguate on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites (does the sequence need to be active, open, or saved?), and no named alternatives. The only signal is the tool name and the sequence_id parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enable_disable_clipEnable Disable ClipC

Enable or disable a clip on the timeline

NameRequiredDescriptionDefault
enabledYesSet to true to enable, false to disable
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the non-read-only, non-destructive, non-idempotent profile, so the description's only remaining job is context - and it supplies none. It does not say what disabling actually does downstream (render/export exclusion, playback, linked A/V pairs), nor mentions the idempotency_key retry semantics despite idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with zero padding and the action front-loaded. Brevity is not the problem here - the sentence simply carries too little, not too much.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Five parameters including a nested pre-flight identity guard, an idempotency key, and a project-path guard are entirely unaddressed in the description. While the input and output schemas are rich, an agent would not learn from the description that mutations are refused when the reviewed identity or project path does not match.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enabled/node_id definitions and the large expected_cep_target/expected_project_path guard objects are fully documented in the schema; baseline 3 applies. The description adds no extra meaning about the two required parameters or the optional identity guards.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb pair ('enable or disable') and resource ('a clip on the timeline'), so an agent can tell it toggles clip state rather than moving, trimming, or deleting. It does not differentiate from the sibling batch_enable_disable, which performs the same action at a wider scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus batch_enable_disable, versus select_disabled_clips (the read-side counterpart), or whether the clip must be selected/active first. The agent is left to infer the single-vs-batch routing entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

encode_fileEncode FileA

Request an Adobe Media Encoder encode for an external file. Requires a saved project. The returned job ID is an unverified handoff; verify queue presence or the output file independently. Optional start_batch requests processing of every ready AME queue job, including unrelated jobs.

NameRequiredDescriptionDefault
in_secondsNoOptional start time in seconds
input_pathYesFull path to the input file
out_secondsNoOptional end time in seconds
output_pathYesFull output file path
preset_pathYesPath to an AME preset file (.epr)
start_batchNoOpt in to start the entire ready Adobe Media Encoder queue after this handoff, including unrelated jobs. Default false (enqueue only). A successful call does not verify that any render started or completed.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
remove_on_completionNoRemove from queue on completion (default: true)
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds genuinely non-obvious behavior beyond the annotations: the returned job ID is an unverified handoff that must be confirmed via queue or output file, and start_batch can trigger unrelated queued jobs. Annotations only say it is a non-read-only, non-idempotent, non-destructive call; the description supplies the real risk profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the action and prerequisite, then the caveats. The start_batch sentence duplicates the schema text and is the one redundant line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter handoff tool with nested objects and an output schema, the description covers the prerequisite, the unverified-result caveat, and the batch side effect. It leaves out how to confirm queue presence (e.g. get_render_queue_status) and what a rejection looks like, but those are minor given the sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the start_batch property already spells out the enqueue-only default and lack of verification, so the description mostly echoes the schema. It adds no meaning to input_path, output_path, preset_path, in_seconds/out_seconds, or the idempotency_key guard.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: request an AME encode for an external file. The 'external file' scope implicitly separates it from encode_project_item, but that sibling is never named, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a prerequisite ('Requires a saved project') and flags start_batch semantics, but never says when to prefer this over encode_project_item or start_batch_encode, nor when not to use it. Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

encode_project_itemEncode Project ItemA

Request an Adobe Media Encoder encode for a project item. Requires a saved project. The returned job ID is an unverified handoff; verify queue presence or the output file independently. Optional start_batch requests processing of every ready AME queue job, including unrelated jobs.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item to encode
output_pathYesFull output file path
preset_pathYesPath to an AME preset file (.epr)
start_batchNoOpt in to start the entire ready Adobe Media Encoder queue after this handoff, including unrelated jobs. Default false (enqueue only). A successful call does not verify that any render started or completed.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
remove_on_completionNoRemove from queue on completion (default: true)
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses that the returned job ID is an *unverified handoff*, that the call does not confirm a render started, that a saved project is required, and that start_batch will process every ready AME queue job including unrelated ones — a materially important side effect the destructiveHint=false annotation would not convey. This is exactly the kind of caveat that prevents an agent from falsely reporting success.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action, then the prerequisite, then the two risk caveats. Every sentence adds information an agent needs before or after calling; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with a nested CEP guard object, an output schema, and non-readonly annotations, the description covers the essentials: prerequisite, non-verification of the result, and the batch side effect. The idempotency_key and expected_cep_target semantics are left entirely to the (rich) schema, which is acceptable given coverage, but the description says nothing about the enqueue-vs-render expectation the agent should report back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so item_id, output_path, preset_path, and the idempotency_key/expected_cep_target guards are already fully documented in structured data. The description only expands on start_batch, and its wording largely duplicates the schema's own start_batch description, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Request an Adobe Media Encoder encode for a project item") rather than restating the tool name, and implicitly distinguishes itself from the export/render-queue siblings by naming AME as the backend. It does not explicitly name an alternative such as start_batch_encode or encode_file, so the differentiation from siblings is left partly to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Requires a saved project" gives a hard prerequisite, and the start_batch sentence tells the agent exactly when the batch opt-in escalates scope to unrelated queue jobs. It also gives post-call guidance (verify queue presence or output file independently). What is missing is an explicit routing rule to a sibling tool (e.g., when to prefer export_sequence or start_batch_encode instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enqueue_after_effects_renderEnqueue After Effects RenderA

Queue exactly one previewed After Effects render with named host templates. Requires explicit confirmation; it saves the open project but never starts rendering or overwrites output.

NameRequiredDescriptionDefault
preview_tokenYesOne-time token returned by preview_after_effects_render.
confirm_enqueueYesMust be true to queue the planned render.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses important side effects: it saves the open project, queues exactly one render, requires confirmation, and never starts rendering or overwrites existing output. This meaningfully clarifies the mutation profile, though it does not cover authorization or queue-side error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with the key action and side-effect constraints front-loaded. There is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation tool with rich schema and output schema, the description covers the essential action, confirmation requirement, and non-render/non-overwrite behavior. What remains missing is explicit routing to the preview sibling, but the core invocation context is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage and documents all parameters, including preview_token and confirm_enqueue. The description reinforces the preview-and-confirm flow but does not add parameter-level semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: queue exactly one previewed After Effects render with named host templates. It also distinguishes the action from previewing or starting a render by saying it never starts rendering or overwrites output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool should be used after a render has been previewed and only with explicit confirmation, which gives clear usage context. However, it does not explicitly name preview_after_effects_render or explain when to choose this over related render or handoff tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_aafExport AafA

Unavailable on the CEP backend. Use export_aaf_uxp with an authenticated Premiere 26.3+ UXP bridge.

NameRequiredDescriptionDefault
output_pathYesFull output file path (e.g., '/Users/me/export.aaf')
sample_rateNoAudio sample rate (default: 48000)
mix_down_videoNoMix down video to single track (default: true)
bits_per_sampleNoAudio bit depth (default: 16)
explode_to_monoNoExplode multichannel audio to mono (default: false)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds a critical behavioral fact beyond those: this tool cannot run on the CEP backend and requires the UXP bridge, which is exactly the runtime constraint an agent needs. It stops short of saying what error/response occurs if it is invoked anyway.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, and the blocking constraint is front-loaded before the redirection. Nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an export tool whose only actionable property is that it is unavailable, the description gives the agent everything needed to avoid calling it and tells it where to go instead; the extensive schema covers parameters and an output schema covers returns. It could be complete at 5 if it stated what happens on a CEP invocation or confirmed the alternative exists in this server's tool set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (output_path, sample_rate, mix_down_video, bits_per_sample, explode_to_mono, idempotency_key, expected_cep_target, expected_project_path) is already documented in the schema. The description adds nothing about parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does (export an AAF file) — it only states a backend availability status. The agent must infer the purpose from the tool name and title. It does, however, clearly distinguish this tool from its UXP counterpart by naming it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says the tool is unavailable on the CEP backend and names the exact alternative (export_aaf_uxp) plus the prerequisite for that alternative (authenticated Premiere 26.3+ UXP bridge). There is no ambiguity about which tool to reach for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_and_verifyExport And VerifyA

Preflight and directly render a guarded CEP sequence, then independently hash and probe the exact output against a delivery contract and optional decoded QC. Refuses existing destinations; never treats queue acceptance as completion.

NameRequiredDescriptionDefault
rangeNoReviewed existing sequence range; this workflow never changes marks.
contractYesverify_delivery_conformance arguments except output_path; checked before export.
decoded_qcNoRun existing decoded black/freeze/silence QC after conformance (default false).
output_pathYesNew absolute delivery destination, with extension matching the preset.
preset_pathYesExplicit validated AME .epr preset.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
timeout_minutesNoNative direct-export timeout, default 15 minutes.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds significant behavioral context by describing its internal process (preflight/guard execution) and its success criteria (hashing/probing against a contract). This gives the agent a robust mental model of the execution guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While technical and dense, the description is perfectly sized and highly effective. Every sentence serves to define the tool's guard rails and core functionality, resulting in zero unnecessary wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high complexity of the input schema, the description is maximally complete. It provides the necessary operational context—guarantees, failure conditions, and execution flow—that complements the extensive input types.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the description adds high-value semantic context to several complex parameters, most notably the behavior of `idempotency_key` (scoping, retry rules) and the constraints on `range`. It ensures the agent understands the deeper implications of the schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool is clearly defined as performing a specific, high-assurance operation: preflight, rendering a guarded CEP sequence, and independently hashing the output against a delivery contract and optional QC. This detailed phrasing immediately distinguishes it from simpler export functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage boundaries by stating that it 'refuses existing destinations' and 'never treats queue acceptance as completion.' This explicit refusal of standard workflow assumptions defines exactly when and how this tool must be invoked.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_as_fcp_xmlExport As Fcp XmlA

Export the active sequence as a Final Cut Pro XML file. Sequences with effects FCP XML cannot represent can make Premiere show a Translation Report modal after writing the XML; dismiss it in Premiere before any queued command can run. Detects the written XML and fresh report if the modal blocks the host. Default wait is 60 minutes for long sequences.

NameRequiredDescriptionDefault
output_pathYesFull output file path (e.g., '/Users/me/export.xml')
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
timeout_minutesNoMaximum wait for the host (default: 60 minutes for long sequences).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint=false and destructiveHint=false, but the description adds important behavioral context beyond them: the tool may trigger a Translation Report modal in Premiere, it detects the written XML and report if blocked, and the default wait is 60 minutes. This is valuable side-effect information an agent needs, though it does not cover file overwrite behavior or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, followed by the critical modal caveat and wait behavior. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, nested objects, output schema present), the description covers the essential purpose and the unusual modal side effect that an agent must handle. The output schema means return values need not be explained. Minor gaps remain around the idempotency and expected_cep_target semantics, but those are fully covered in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all five parameters in detail. The description only references the default wait (timeout_minutes), which is already in the schema, and adds no further meaning about output_path, idempotency_key, or expected_cep_target. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Export the active sequence as a Final Cut Pro XML file.' This clearly distinguishes it from import_fcp_xml and other export tools, but it does not explicitly name sibling alternatives or contrast with them, leaving a small gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied by the specific format (FCP XML), but there is no explicit guidance on when to choose this over export_sequence, export_aaf, or export_sequence_edl. The note about dismissing the Translation Report modal is a procedural warning, not a usage alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_as_projectExport As ProjectB

Export a sequence as a standalone Premiere Pro project file. Fails when Premiere writes no file or leaves a pre-existing output unchanged.

NameRequiredDescriptionDefault
output_pathYesFull path for the exported .prproj file
sequence_idNoSequence name or ID. Uses active sequence if omitted.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the write profile is covered. The description adds real value beyond that by disclosing a post-condition: it fails if Premiere writes no file or leaves an existing output unchanged, i.e. success is verified rather than assumed. It stops short of stating overwrite semantics for an existing path, whether the source sequence must be active/saved, or that the project must be saved locally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the primary purpose front-loaded and the failure mode second. Zero filler; nothing to trim, though it is arguably too sparse given the tool's 5-parameter complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and rich schema descriptions carry return values and guard semantics, so the description needn't repeat them. However, for a write tool with guarded identity parameters and a .prproj target, the description omits prerequisites (project saved, sequence resolution via sequence_id vs active sequence) and overwrite behavior, leaving meaningful operational gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the parameters (including the nested expected_cep_target guard and expected_project_path) are documented in detail in the schema itself. The description adds nothing about parameters, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Export a sequence as a standalone Premiere Pro project file'. An agent knows exactly what the tool produces. It does not distinguish itself from adjacent export/save tools (export_sequence, export_fcp_xml, export_aaf, save_project_as), which are all plausible alternatives here.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to choose this over siblings such as save_project_as (which also writes a .prproj) or export_sequence/export_fcp_xml for other deliverables. The failure condition hints at verification behavior but no explicit when-to-use or when-not-to-use rule is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_facility_metadata_tableExport Facility Metadata TableA

Create a new bounded ALE facility metadata table from reviewed named field rows. Rejects duplicate columns, unknown row fields and tabs/newlines that ALE cannot safely represent. No project metadata is read or changed; verify downstream facility import separately.

NameRequiredDescriptionDefault
fpsYesDeclared decimal frame rate up to 240; keep source rate provenance separately.
rowsYesReviewed table rows containing only declared column names and bounded string values.
columnsYesExplicit unique column names.
output_pathYesAbsolute caller-selected local file path. Referenced media is never opened automatically.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: it discloses validation failures (duplicate columns, unknown row fields, tabs/newlines ALE cannot represent) and explicitly states no project metadata is read or changed. Key omission for a write tool: it never says whether an existing file at output_path is overwritten, appended to, or refused.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action and scope, each carrying distinct information (what is created, what is rejected, what is not touched). No filler; the only cost is that the rejection list is packed densely into one clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% schema coverage, the description only needs to cover scope, constraints and side effects, which it largely does. The one gap an agent calling a file-writing tool needs is overwrite/replace behavior on output_path and whether the file may be large or streamed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with per-parameter text for output_path, fps, columns, rows and even idempotency_key semantics. The description adds no parameter-level detail or cross-parameter constraints beyond what the schema already carries, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: 'Create a new bounded ALE facility metadata table from reviewed named field rows.' It is clearly distinct from the read-oriented siblings like get_metadata or get_project_panel_metadata. It stops short of naming its closest sibling, preview_facility_metadata_intake, so an agent must infer the pairing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'from reviewed named field rows' and 'verify downstream facility import separately' imply a review-then-export workflow, which hints at when this is appropriate. But no alternative tool is named and no explicit precondition (e.g. run preview_facility_metadata_intake first) is stated, so routing 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.

export_frameExport FrameA

Export a file-verified still image. PNG stills keep the sequence's transparency (straight alpha, reported as hasAlpha); composite them over black before measuring brightness or comparing with a video render. A single still does not verify motion over time, playback or audio.

NameRequiredDescriptionDefault
output_pathYesFull output file path (e.g., '/Users/me/frame.png'). Extension determines format.
time_secondsNoTime position in seconds to export. Uses current playhead if omitted.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic write/non-destructive profile, so the description's real additions matter: the output is 'file-verified', PNG stills carry the sequence's straight alpha and report hasAlpha, and alpha must be composited before measurement. It does not say what happens if output_path already exists or how failures surface, which is the remaining behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: the capability first, then a format caveat with its practical consequence, then a scope limit. Every sentence carries information an agent would otherwise get wrong.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description still flags the key result field (hasAlpha) plus the alpha-compositing pitfall. For a single-still export with a fully documented schema, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, including the note that the extension determines format, so the schema already documents all five parameters. The description only adds interpretive context about PNG/alpha behavior tied to output_path; it says nothing extra about time_seconds, idempotency_key, or the expected_cep_target guard objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Export') and resource ('a file-verified still image'), so the agent knows this produces a single still file rather than a video. It implicitly separates itself from video/motion exports, but never names sibling tools such as capture_frame or export_sequence_review_frames, so differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete downstream guidance ('composite them over black before measuring brightness or comparing with a video render') and an explicit when-not ('A single still does not verify motion over time, playback or audio'). No alternative tool is named for the motion/audio case, so the agent must find one itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_omfExport OmfA

Export the active sequence as an OMF file (Open Media Framework, for audio post-production). Long sequences can use a longer wait (default 60 minutes); if Premiere writes the file but times out, the receipt includes its size as committed_unverified.

NameRequiredDescriptionDefault
include_panNoInclude pan information in the OMF (default: false)
output_pathYesFull output file path (e.g., '/Users/me/export.omf')
sample_rateNoAudio sample rate (default: 48000)
handle_framesNoHandle length in frames when trimming (default: 1000)
bits_per_sampleNoAudio bit depth (default: 16)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
timeout_minutesNoMaximum wait for Premiere to write the OMF (default: 60 minutes for long sequences).
trim_audio_filesNoTrim audio to used range plus handles (default: true)
audio_file_formatNoAudio format: 0=AIFF, 1=WAV. Default: 1
audio_encapsulatedNoEmbed audio in OMF (true) or reference external files (false). Default: true
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the annotations meaningfully: it discloses the default 60-minute wait, warns that long sequences can need a longer wait, and—most valuably—describes the partial-success state where Premiere writes the file but the call times out, surfacing size as committed_unverified in the receipt. Annotations only cover safety hints, not this timeout/partial-write behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what is exported and to which format, then the timeout caveat. No filler and no restatement of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, nested-guard, mutation-style tool with an output schema, the description covers the operation, the key timeout behavior, and the partial-success outcome. It relies on the schema for the CEP identity guards and idempotency contract, which is reasonable given full description coverage, though a one-line note that the tool drives Premiere's own OMF writer would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 12 parameters (including the nested expected_cep_target guard and idempotency_key semantics) are documented in the schema itself. The description adds only the timeout default context, which is already in the timeout_minutes schema text; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Export the active sequence as an OMF file') and clarifies the format with a parenthetical gloss plus the domain it serves (audio post-production). That format specificity implicitly separates it from siblings like export_aaf, export_as_fcp_xml, and export_sequence, though it never names them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for audio post-production' signals the intended scenario, which is useful context, but there is no explicit when-to-use rule and no statement of when to prefer export_aaf or export_sequence instead. Usage must be inferred from the interchange format.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_review_markersExport Review MarkersA

Create a new bounded review-marker CSV or JSON from caller-reviewed marker readback. Includes exact ticks, rational rate, source/sequence identity and display timecodes with explicit start offset/drop-frame policy. CSV text escapes spreadsheet formula prefixes, quotes and newlines. Existing files are never overwritten.

NameRequiredDescriptionDefault
rateYesExact rational frames per second; e.g. 30000/1001.
formatYesOutput serialization.
targetYesExact reviewed marker owner
markersYesReviewed marker readback; empty sequences still emit CSV headers.
drop_frameNoUse drop-frame timecode only for 30000/1001 or 60000/1001; default false.
output_pathYesAbsolute caller-selected local file path. Referenced media is never opened automatically.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false, destructiveHint=false, idempotentHint=false. The description adds genuinely new behavior: CSV formula-prefix/quote/newline escaping (a security-relevant detail) and the guarantee that existing files are never overwritten, which reconciles with destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the verb and output artifact, then constraints, then safety behaviors. No filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need no prose, and annotations cover the safety profile. The description omits mention of the optional identity guards (expected_cep_target, expected_project_path) and idempotency semantics, though the schema documents both at full coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds framing value by calling out the rational frame rate, exact tick timecodes, and an explicit drop-frame policy that map to rate, start_ticks/duration_ticks, and drop_frame. It does not touch the identity-guard parameters, but the schema already documents those fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and artifact ('Create a new bounded review-marker CSV or JSON') plus the required input ('caller-reviewed marker readback') and the exactness constraints (ticks, rational rate, start offset/drop-frame). This clearly separates it from sibling marker readers (list_markers, get_clip_markers) and frame exporters (export_sequence_marker_review_frames).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'from caller-reviewed marker readback' implies the prerequisite step of reading markers back before exporting, and 'Existing files are never overwritten' warns that a fresh path is required. It stops short of naming an explicit alternative or stating when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_sequenceExport SequenceA

Export the active sequence directly (Premiere renders it; blocks until done) with an Adobe Media Encoder preset. The output extension must match what the preset writes (an H.264 preset in AME's QuickTime folder writes .mov); a missing extension is added. Refuses an output_path that already exists unless overwrite is true. Fails if Premiere rejects the render, verifies a non-empty file was written (for an overwrite, that the file changed), and checks its duration with ffprobe within one sequence frame. An unavailable or mismatched duration leaves a written artifact unverified. range 'work_area' fails closed unless the work area is enabled and covers only part of the sequence — otherwise Premiere would encode the entire timeline.

NameRequiredDescriptionDefault
rangeNoWhat to render: the entire sequence (default), the sequence in/out range (set_sequence_in_out_points), or the work area. work_area requires an enabled work area around part of the sequence; unset or full-sequence work areas are refused instead of encoding everything. Set and read back a valid work area where the host supports it, or use in_to_out for a ranged export.
overwriteNoReplace a file that already exists at output_path (default: false, which refuses the export). The replacement is only reported as written when the file's size or modification time changes.
output_pathYesFull output file path (e.g., '/Users/me/exports/video.mp4')
preset_pathNoPath to an AME preset file (.epr). Uses the default H.264 (MP4) Match Source preset if omitted.
work_area_onlyNoDeprecated alias for range: 'work_area'
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
timeout_minutesNoHow long to wait for the render (default: 15; long sequences such as full podcast episodes may need more)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past annotations: blocking render semantics, extension-must-match-preset rule, refusal of existing output_path, post-render verification (non-empty file, file changed on overwrite, ffprobe duration within one frame), and the explicit honest caveat that an unavailable/mismatched duration leaves an artifact unverified. Also discloses the fail-closed work_area behavior and why (Premiere would otherwise encode the whole timeline).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and mechanism, then layers constraints and failure modes in descending priority; every sentence carries a distinct fact (extension, overwrite, verification, work_area failure mode) with no filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a blocking, file-writing tool with an output schema, the description covers prerequisites, side effects, refusal conditions, and verification limits. The remaining structured concerns (identity guards, idempotency replay semantics, timeout) are fully documented in the schema, so nothing an agent needs to call it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so baseline is 3, but the description adds real meaning beyond the schema: output extension derivation from the preset (H.264 in QuickTime folder writes .mov), automatic extension insertion, and the fail-closed condition for range='work_area'. It leaves timeout_minutes, idempotency_key, and the CEP guards to the schema, which documents them thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb, resource, and mechanism: exports the active sequence via an Adobe Media Encoder preset, rendered by Premiere itself. The parenthetical '(Premiere renders it; blocks until done)' immediately separates it from async siblings such as export_sequence_job_start or add_to_render_queue, so an agent knows what kind of export this is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operative decision rules: use overwrite=true to replace an existing file, and use in_to_out for a ranged export when the host cannot hold a valid work area. What is missing is explicit routing against the sibling family (job-start, render queue, encode_project_item) — the agent must infer that this call blocks synchronously rather than queuing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_sequence_clip_review_framesExport Sequence Clip Review FramesA

Export one file-verified still frame at the midpoint of each clip on a chosen video track in one bridge request. If Media Encoder still capture cannot restore sequence In/Out, remaining frames are not attempted and the call fails. Read-only in Premiere; it does not mute tracks or claim visual quality.

NameRequiredDescriptionDefault
limitNoMaximum clips to sample (default: 20; maximum: 50)
output_dirYesExisting directory for clip_001.png and subsequent review frames
track_indexNoZero-based video track index (default: 0)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are thin (readOnlyHint false, destructiveHint false, idempotentHint false), so the description carries most of the load and does add real context: a single bridge request, file-verified frames, non-attempt of remaining frames on In/Out restore failure, and an explicit disclaimer that it does not mute tracks or claim visual quality. That last clarification usefully reconciles 'Read-only in Premiere' with readOnlyHint=false (it writes files but does not mutate the sequence). It stops short of describing output naming/pagination beyond what the schema covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, no filler, with the core action and scope front-loaded before the failure mode and the non-mutation caveats. Slightly clipped phrasing ('file-verified', 'bridge request') assumes domain vocabulary but does not waste space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers purpose, failure semantics, and side-effect boundaries for a 6-param tool with a nested identity guard. What remains unstated — how expected_cep_target / expected_project_path guards interact with this read-only capture, and how partial successes are reported — is a modest gap given the nested schema complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so track_index, limit, output_dir and the idempotency_key contract are already fully documented in structured form. The description only echoes the track concept ('chosen video track') and adds nothing about limit defaults, output naming, or when the idempotency key applies (the schema itself notes read-only invocations are never deduplicated). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Export'), a concrete artifact ('one file-verified still frame at the midpoint of each clip'), and a scope ('on a chosen video track'), which distinguishes it from the broader export_sequence_review_frames and from marker-driven export_sequence_marker_review_frames. It never names those siblings explicitly, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Sampling midpoint-of-clip frames per track implies the when-to-use context, and the failure statement tells the agent what happens under Media Encoder In/Out problems. But there is no explicit 'use this instead of export_frame / capture_frame / export_sequence_marker_review_frames when…' routing, which is exactly what the crowded sibling set demands.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_sequence_edlExport Sequence EdlA

Generate a CMX 3600 EDL for one video or audio track of a sequence from Premiere timeline readback (cuts, reels, source/record timecode, M2 lines for retimed clips), self-validate it, and return it inline or write it inside an approved workspace. Premiere is only read; this is not a Premiere-native export. Long sequences can use a longer timeout (default 30 minutes).

NameRequiredDescriptionDefault
titleNoTITLE line (default: the sequence name).
reel_modeNoHow reel names are derived: clip_name (default), tape_name (XMP tapeName when present), or numbered.
drop_frameNoWrite drop-frame timecode (29.97/59.94 only). Defaults to the sequence display format.
frame_rateNoOverride the CMX timecode rate; defaults to the sequence rate (23.976 is written as 24).
track_typeNoTrack type to export (default video).
output_pathNoOptional absolute .edl path to write. Requires approved_workspace_path; the file must not already exist. When omitted the EDL text is returned inline.
sequence_idNoSequence ID or name. Defaults to the active sequence.
track_indexNoTrack index to export (default 0).
return_contentNoInclude the per-event list and reel list in the result (default true). With output_path, false returns only the path, event count, record duration, checksum and validation, which keeps long EDLs out of the conversation.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
timeout_minutesNoMaximum wait for Premiere timeline readback (default: 30 minutes).
include_disabledNoInclude disabled clips as events (default false).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
record_start_secondsNoRecord timecode origin in seconds (default: the sequence zero point).
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathNoAbsolute existing directory that must contain output_path. Required with output_path.
include_clip_name_commentsNoEmit '* FROM CLIP NAME:' comments (default true).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark it non-read-only, non-idempotent, non-destructive but say nothing about side effects; the description fills that gap by stating 'Premiere is only read' (the timeline is untouched, only a file may be written) and that the output is self-validated before return. It also discloses the 30-minute default timeout for long readbacks. What it omits is the file-write precondition (workspace approval, output must not already exist) and the idempotency/replay behavior, both of which live only in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action and artifact, then the read-only constraint, then the timeout. No sentence restates the name or the annotations, and nothing could be cut without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 17 params, nested objects, full schema coverage, and an output schema, the description covers what matters: what is produced, what is read vs. written, validation, and runtime. The remaining gap is that the write path's safety contract and idempotency semantics are only discoverable by reading the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 adds only the single-track scope and the existence of M2 lines for retimed clips. The 17 parameters — including idempotency_key, expected_cep_target, expected_project_path, reel_mode, and record_start_seconds — are explained entirely by the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and artifact ('Generate a CMX 3600 EDL') scoped to 'one video or audio track of a sequence', and enumerates the contents (cuts, reels, source/record timecode, M2 lines for retimed clips). The line 'this is not a Premiere-native export' cleanly splits it from export_sequence and the other interchange exporters in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implicitly contrasts with the Premiere-native export path and explains the two delivery modes (inline return vs. write into an approved workspace), which guides usage. However, it never names the obvious siblings an agent must choose between — inspect_cmx3600_edl, validate_cmx3600_edl, compare_cmx3600_edls, export_as_fcp_xml, export_aaf, export_omf — so the when-not-to-use call 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.

export_sequence_job_startExport Sequence Job StartA

Start an asynchronous Adobe Media Encoder export of the active sequence and return a job id at once, so long renders (such as full episodes) do not hold the MCP call open. Poll get_export_job_status until it reports completed or failed. Requires a saved project, an .epr preset_path (Same as Project presets are refused), an existing output folder, and an output_path with no file yet (existing files are always refused; AME may otherwise rename or overwrite). The output extension must match the preset; a missing extension is added. range follows export_sequence: in_to_out and work_area fail closed instead of encoding the whole timeline. start_batch (default true) asks AME to start every ready queue job, including unrelated ones. Success means AME accepted the job (committed_unverified); render completion and the file are verified later by get_export_job_status. Jobs are tracked only by this server process.

NameRequiredDescriptionDefault
rangeNoWhat to render: the entire sequence (default), the sequence in/out range, or an enabled work area around part of the sequence. Ranged modes are refused when they would encode the whole timeline.
output_pathYesFull output file path that does not exist yet, in an existing folder (e.g., '/Users/me/exports/episode-12.mp4')
preset_pathYesRequired path to an Adobe Media Encoder preset file (.epr) with an explicit output location (not Same as Project)
start_batchNoAsk Adobe Media Encoder to start its queue after queuing this job (default true). This starts every ready AME job, including unrelated ones. Pass false to only queue it; the job then stays queued until the AME queue is started (start_batch_encode).
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations (destructiveHint=false, openWorldHint=false, idempotentHint=false) and discloses real behavioral traits: existing files are always refused because AME may rename or overwrite, ranged modes fail closed rather than encoding the whole timeline, start_batch true will also start unrelated ready jobs, and success means only committed_unverified with the file verified later. It also warns that jobs are tracked only by this server process, which an agent needs before assuming durability across restarts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and the polling instruction before the precondition list, and every sentence carries an operational fact. A few clauses restate what the schema already documents (preset_path must be .epr and not Same as Project, start_batch semantics), which keeps it slightly dense but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation with nested guard objects and an output schema, the description covers everything an agent needs to invoke it correctly: prerequisites, failure modes, queue side effects, and what a success result actually means. Return-value detail is correctly delegated to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: the extension must match the preset and a missing extension is added, ranged modes fail closed, and the success state for output_path is committed_unverified rather than a finished file. The nested guard parameters (expected_cep_target, expected_project_path) are left to the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Start an asynchronous Adobe Media Encoder export of the active sequence") plus the immediate effect (returns a job id) and the reason (long renders must not hold the MCP call open). That clearly separates it from the synchronous export_sequence, and it names get_export_job_status as the completion path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use (long renders, poll get_export_job_status until completed/failed) and lays out hard preconditions - saved project, .epr preset_path that is not Same as Project, existing output folder, output_path with no file, matching extension. It stops short of an explicit exclusion, never saying when to prefer export_sequence or add_to_render_queue instead, so the routing to the synchronous alternative 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.

export_sequence_marker_review_framesExport Sequence Marker Review FramesA

Export up to 24 file-verified still frames at active-sequence marker positions in one bridge request for marker-driven review. If Media Encoder still capture cannot restore sequence In/Out, remaining frames are not attempted and the call fails. It reads markers and writes image files only; it does not add, update, or remove Premiere markers.

NameRequiredDescriptionDefault
limitNoMaximum chronological marker frames to export (default: 12; minimum: 1; maximum: 24).
output_dirYesExisting directory where marker_review_001.png through marker_review_NNN.png will be written
end_secondsNoOptional positive exclusive upper bound for marker positions in seconds.
marker_typeNoOptional exact Premiere marker type to include (for example Comment or Chapter).
start_secondsNoOptional non-negative lower bound for marker positions in seconds.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses a genuine failure mode (if Media Encoder still capture cannot restore sequence In/Out, remaining frames are not attempted and the call fails) and scopes side effects to writing image files only. This adds real context beyond the annotations, which only flag readOnlyHint=false and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences: what it does, the failure condition, then the side-effect scope. Efficient and logically ordered, with only minor redundancy between 'file-verified' and the failure sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained. For a tool that writes files and has 8 nested params, the description covers the key behavioral facts (mutates files, may fail mid-batch, does not alter markers) that an agent needs to call it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema, including the limit cap and output file naming. The description restates the 24-frame cap and bridge-request batching but adds no new parameter semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (export) and resource (file-verified still frames at active-sequence marker positions), with a concrete limit of 24. The 'marker positions' scope distinguishes it from export_frame and export_sequence_clip_review_frames, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for marker-driven review' implies the use case, and it clarifies it will not touch markers, but there is no explicit when-to-use/when-not statement nor routing to the similar review-frame siblings. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_sequence_review_framesExport Sequence Review FramesA

Export 2-24 evenly spaced, file-verified frames from an active-sequence range in one bridge round trip for visual review. If Media Encoder still capture cannot restore sequence In/Out, remaining frames are not attempted and the call fails. Still capture does not verify temporal animation, playback, audio, or editorial quality; PNG frames keep the sequence's transparency (straight alpha), so composite them over black before comparing with a video export.

NameRequiredDescriptionDefault
output_dirYesExisting directory where review_001.png through review_NNN.png will be written
end_secondsNoOptional positive range end in seconds (default: sequence end)
frame_countNoNumber of evenly spaced frames to export (default: 6; minimum: 2; maximum: 24)
start_secondsNoOptional non-negative range start in seconds (default: sequence start)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare it non-read-only, non-destructive, non-idempotent, but the description supplies facts annotations cannot: the failure mode when Media Encoder still capture cannot restore sequence In/Out (remaining frames not attempted, call fails), and the straight-alpha PNG output requiring compositing over black. That is substantive behavioral context beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then failure behavior, then output caveats. Dense but every clause carries information an agent would otherwise learn the hard way.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation; the description instead covers the things the schema cannot: the atomic failure semantics, verification limits, and alpha-compositing requirement. For a 7-parameter tool with nested guard objects, this is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, including default and range semantics for frame_count, start_seconds, and end_seconds, so the schema already carries parameter meaning. The description restates the 2-24 frame constraint and does not clarify expected_cep_target or idempotency_key behavior beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: export 2-24 evenly spaced file-verified frames from an active-sequence range in one bridge round trip. The 'visual review' framing distinguishes it in spirit from export_frame or export_sequence_clip_review_frames, but it never names those siblings, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'For visual review' implies the use case, and the description warns what the frames do NOT verify (temporal animation, playback, audio, editorial quality), which steers agents toward other tools for those checks. However, it never explicitly says when to choose this over export_frame, export_sequence_marker_review_frames, or export_sequence_clip_review_frames.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_selectionExtract SelectionA

EXPERIMENTAL (undocumented QE DOM: extract()). Extract (remove and close the gap) the content between the sequence in/out points on every targeted, unlocked track, then verify each targeted track lost exactly the range and its later clips moved up by the range. Marks that Premiere stored just off a frame are first re-written on that exact frame through QE (marksRewritten). Requires sequence in/out marks that do not span the whole sequence. Premiere can also change untargeted tracks (for example the linked audio of targeted video, or sync-locked tracks); those are not verified but are listed in otherTracksChanged.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: declares the tool is EXPERIMENTAL and built on undocumented QE DOM extract(), describes post-edit verification, discloses the marksRewritten behavior, and warns that untargeted tracks (linked audio, sync-locked tracks) may be altered and are only reported in otherTracksChanged, not verified. That is exactly the kind of side-effect disclosure an agent needs for a timeline mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the operation and its gap-closing semantics before the caveats, and every sentence carries information (constraint, verification, marks rewriting, side effects). It is dense and somewhat run-on, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive-adjacent QE-backed edit, the description covers the prerequisite, what is verified, what is not verified, and where unverified side effects surface (otherTracksChanged). An output schema exists, so return-value explanation is not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the three top-level parameters (idempotency_key, expected_cep_target, expected_project_path) fully documented in-schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: extract (remove and close the gap) the content between the sequence in/out points on targeted, unlocked tracks. The parenthetical 'remove and close the gap' implicitly distinguishes it from lift-style edits, but no sibling (e.g. lift_selection, ripple_delete) is named explicitly, so the differentiation must be inferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Requires sequence in/out marks that do not span the whole sequence" gives a concrete precondition an agent must satisfy before calling. It does not name alternatives (lift_selection vs ripple_delete vs ripple_remove_timeline_ranges), so the agent gets clear context but no explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_items_by_media_pathFind Items By Media PathA
Read-onlyIdempotent

Find project items whose media path contains the given search string

NameRequiredDescriptionDefault
path_searchYesPartial file path to search for
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a read-only, idempotent, non-destructive, non-open-world operation. The description adds useful behavioral detail that matching is a substring/contains search on media paths, but it does not describe result limits, ordering, or case sensitivity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single front-loaded sentence with zero wasted language. It communicates the action, target, and match condition immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a read-only search with a rich input schema, full parameter descriptions, and an output schema, so the description does not need to explain return values or guard parameters. It is nearly complete for an agent to invoke correctly, though it could briefly clarify substring matching assumptions such as case sensitivity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents path_search as a partial file path. The description reinforces that the search string is matched against media paths, but it adds no new semantics for the expected_cep_target or expected_project_path guard parameters beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (find project items) plus the exact matching criterion (media path contains the search string). This distinguishes it from sibling lookup tools such as find_project_item_by_name and search_project_items without requiring the agent to inspect schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a usage condition: use it when searching by a partial media path. However, it does not explicitly say when to choose this over alternatives like find_project_item_by_name or search_project_items, nor does it mention exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_item_usagesFind Item UsagesA
Read-onlyIdempotent

Read-only: list where project items are used on timelines, as sequence name/ID, track type/index and clip count. A bin counts everything inside it, including sequences stored there (every clip on those timelines), because deleting a bin deletes those sequences even when their media lives in another bin. Run this before deleting or reorganizing bins, especially after import_fcp_xml, which can reuse existing project items for its sequences. Also reports offline (missing-media) items inside each target.

NameRequiredDescriptionDefault
item_idsYesNode IDs or names of project items or bins to check (1-100)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description still adds non-obvious behavior: bin results aggregate the sequences/media stored inside, with the rationale that deleting a bin destroys those sequences even when media lives elsewhere. It also discloses that offline items are reported per target, which is not derivable from the schema or annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the read-only framing and result shape, then the bin gotcha, then the call-to-action. Nothing is redundant with the title or schema, and the risk rationale is attached to the exact case where it matters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be enumerated, yet the description still summarizes them. Combined with the when-to-use guidance, the bin-deletion rationale and offline reporting, an agent has everything needed to decide and call correctly for a 3-parameter read tool with nested guards.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by clarifying that item_ids may be either project items or bins and that a bin ID expands to its full contents. The two guard parameters (expected_cep_target, expected_project_path) are left entirely to the schema, which is acceptable given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'list where project items are used on timelines', then names the returned fields (sequence name/ID, track type/index, clip count). The purpose is unambiguous, but it never names a sibling to contrast with — related tools like get_used_media_report, get_unused_media and check_offline_media are left for the agent to disambiguate by name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Run this before deleting or reorganizing bins, especially after import_fcp_xml' gives an explicit trigger and names a concrete sibling tool that creates the risky condition. There is no explicit when-not or 'use X instead' clause, so it stops 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.

find_project_item_by_nameFind Project Item By NameB
Read-onlyIdempotent

Find a project item by name (searches recursively through bins)

NameRequiredDescriptionDefault
nameYesName of the project item to find
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish that this is a read-only, idempotent, non-destructive lookup. The description adds that the search recurses through bins, but it does not disclose important matching behavior such as exact vs. partial name matching or what happens with multiple or zero matches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no waste. It immediately communicates the core action and the recursive search scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a rich schema, annotations, and an output schema, so the description need not explain every field or return value. However, for a name-based finder it omits match semantics and multi-result behavior, which leaves a meaningful gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters, including the nested guard objects. The description only restates the primary name-based lookup and adds no extra semantics for the optional expected CEP target or project path guards.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: find a project item by name. It also clarifies the search scope as recursive through bins, which helps distinguish it from a flat list or media-path search, though it does not explicitly contrast with siblings like search_project_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but gives no explicit guidance on when to use it versus alternatives such as search_project_items, list_project_items, get_project_item_info, or find_items_by_media_path. There are also no stated exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

freeze_frameFreeze FrameA

Create a freeze frame from a clip at a specific SEQUENCE time (for a source-media time, use create_source_freeze_frame). Exports the frame, imports it back as a still image, and sets the still's Out mark to duration_seconds so add_to_timeline places it at that length (snapped to the still's frame grid, then to the sequence frame). It does not place the still on the timeline.

NameRequiredDescriptionDefault
output_pathYesFull path for the exported frame (e.g., /path/to/freeze.png)
time_secondsNoTime in the sequence to freeze (in seconds). Uses playhead if omitted.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoLength of the imported still in seconds, written as its Out mark and read back (default: 2, at most 3600).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the description adds genuine context beyond them: the export-then-reimport pipeline, the Out-mark write on the resulting still, the snapping order (still frame grid, then sequence frame), and the fact that nothing is placed on the timeline. It stops short of saying where the imported still lands or what happens on a failed export.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler, front-loaded with the operation and its sibling disambiguation before the mechanics. The parentheticals carry information rather than hedging.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the multi-step side effects (export, reimport, Out-mark write) are disclosed. Minor gaps remain around error behavior and where the imported still is created, but the description is sufficient 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics the schema lacks: time_seconds is interpreted in the sequence time domain, and duration_seconds becomes the still's Out mark and is subject to frame-grid snapping. It does not describe output_path or the guard parameters, which the schema already handles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (create a freeze frame from a clip) plus the exact time domain (SEQUENCE time) and explicitly names the sibling it is not (create_source_freeze_frame). An agent can distinguish this from the source-time variant without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative tool and the condition that selects it (source-media time), and states the follow-up (add_to_timeline places it) along with the exclusion that this tool does not place the still. Clear usage context, though prerequisites like an active sequence or the still's landing bin are not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_media_contact_sheetGenerate Media Contact SheetA

Generate a new, disk-verified PNG contact sheet from evenly sampled source frames. Refuses to overwrite an existing output and does not modify Premiere or the source.

NameRequiredDescriptionDefault
rowsNoGrid rows from 2 through 8 (default: 3)
columnsNoGrid columns from 2 through 8 (default: 4)
media_pathYesExisting local video file
output_pathYesNew .png output path
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
thumbnail_widthNoThumbnail width from 160 through 1280 pixels (default: 320)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses that the output is disk-verified, that existing output is not overwritten, and that Premiere and source media are not modified. This adds useful operational context, though idempotency and retry behavior are left to 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with the core action and key safety constraint front-loaded. There is no redundant or filler language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex, with eight parameters, nested guard objects, and an output schema. The description is brief but the schema and output schema carry detailed semantics, so the description is mostly complete; it could say slightly more about the generated sheet or guards, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters including rows, columns, thumbnail width, idempotency key, and expected identity guards. The description adds little parameter-level meaning beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: generate a PNG contact sheet from evenly sampled source frames. It is clearly distinguishable from sibling tools, but it does not explicitly name or contrast with any alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when the tool is appropriate by describing source-frame sampling and a new PNG output, but it provides no explicit when-to-use, when-not-to-use, or alternative-tool guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_active_sequenceGet Active SequenceA
Read-onlyIdempotent

Get bounded, paged information about the currently active sequence (50 clips by default). Follow pagination.nextOffset for more

NameRequiredDescriptionDefault
clip_limitNoPage size (default: 50, maximum: 200). Payload budget may shorten a page. Inspect nextOffset.
track_typeNoTrack type to page (default: both). Track counts remain available.
clip_offsetNoOffset into matching clips (matching gaps for get_timeline_gaps), video before audio (default: 0).
end_secondsNoOptional exclusive window end; must exceed start_seconds.
track_indexNoOptional zero-based track index within each selected type.
start_secondsNoOptional inclusive window start; returns overlapping items.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds the pagination contract (50-clip default page, follow nextOffset), but most of that is already documented on the clip_limit parameter ('default: 50, maximum: 200 ... Inspect nextOffset'), so the net addition is modest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler, and the paging/pagination instruction is front-loaded where the agent will see it before calling. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema and 100% parameter coverage mean return shape and argument meaning are handled elsewhere, and annotations cover safety. However, for a tool with 8 parameters (including a nested CEP guard object) sitting among many sequence-inspection siblings, the description does little to explain paging semantics or when to prefer it over get_full_sequence_info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the offset/limit paging model, track_type enum, and the expected_cep_target guard, so the baseline is 3. The description restates the default page size without adding syntax, ordering, or interaction detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get ... information about the currently active sequence') plus a scoping qualifier ('bounded, paged'). It implicitly distinguishes itself from the unbounded get_full_sequence_info by emphasizing pagination, but never names the sibling it contrasts with, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Follow pagination.nextOffset for more' gives an imperative but no when-to-use/when-not-to-use versus alternatives like get_full_sequence_info or get_timeline_summary. An agent must infer that this is the paged/summary variant and the others are the complete/unstructured variants.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_advanced_feature_supportGet Advanced Feature SupportB
Read-onlyIdempotent

Report public-API support, prerequisites, entitlements, and user-assisted boundaries for Premiere collaboration and AI features

NameRequiredDescriptionDefault
backendNoBackend being evaluated (default: cep, the current production MCP transport)
frameio_entitledNoWhether the operator has confirmed Frame.io account/project access
premiere_versionNoOptional Premiere version such as 26.3.0 for version-specific eligibility
network_availableNoWhether required Adobe/cloud services are reachable
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
generative_ai_entitledNoWhether the operator has confirmed Adobe generative AI entitlement

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The phrase 'user-assisted boundaries' usefully signals that some capabilities cannot be fully driven through the API, but the description says nothing about what the report contains beyond that or how optional inputs (entitlement flags, version, network) change the verdict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with no wasted words, leading with the action and immediately naming the feature domains. It is dense but readable, though the trailing phrase 'user-assisted boundaries' is undefined jargon that a reader must guess at.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema and annotations carrying safety, the description needn't explain return values. However, for a 7-parameter tool with nested objects it never explains that parameters act as evaluation inputs that narrow the report, and it leaves the tool's relationship to get_av_feature_support and get_capabilities unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter, including the deeply nested expected_cep_target guard, is documented in the schema itself, so the baseline is 3. The description gestures at some inputs ('prerequisites, entitlements') but adds no syntax, defaults, or semantics beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Report') and enumerates the resource contents: public-API support, prerequisites, entitlements, and user-assisted boundaries for Premiere collaboration and AI features. That is clear enough to distinguish it from generic project tools, but it never contrasts itself with its near-neighbour get_av_feature_support or get_capabilities, so an agent cannot tell them apart from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The subject matter ('collaboration and AI features') implicitly tells the agent when the tool is relevant, but there is no explicit when-to-use, no prerequisites, and no mention of when to prefer get_av_feature_support or get_capabilities instead. Usage must be inferred from the topic rather than read off the text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_project_pathsGet All Project PathsA
Read-onlyIdempotent

Get all unique media file paths used in the project. Useful for asset management and archiving.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is clear. The description adds little beyond the safe-read implication: it does not say whether offline media, duplicates, or ordering are included, though with annotations covering safety this is a moderate gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and followed by a brief use case. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only path-listing tool with a rich output schema and annotations covering safety, the description is mostly complete. It omits explanation of the optional guard parameters and does not clarify edge cases like offline media, but the structured fields compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both optional parameters, expected_cep_target and expected_project_path, are fully documented in the schema at 100% coverage. The description does not add any parameter guidance, so the baseline of 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get all unique media file paths used in the project.' That scope distinguishes it from path-search or unused-media siblings, but it does not explicitly name those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Useful for asset management and archiving' implies a use case but gives no explicit when-to-use guidance, when-not-to-use conditions, or alternatives such as get_used_media_report or find_items_by_media_path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_av_feature_supportGet Av Feature SupportC
Read-onlyIdempotent

Report the documented automation boundary for advanced audio and modern color management, including actionable reasons for UI-only features.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds that results include 'actionable reasons for UI-only features', which is genuinely useful context about output content, but it does not explain what the boundary report contains structurally or that the optional guard parameters cause refusal behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no padding, and the core subject is front-loaded. It is efficient, though terms like 'documented' and 'actionable' add mild fluff rather than precision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be spelled out, and the read-only safety profile is covered by annotations. What is missing is disambiguation from get_advanced_feature_support and get_capabilities, which is essential given how many capability-inspection siblings exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both optional parameters (expected_cep_target, expected_project_path) are fully documented in the schema and baseline 3 applies. The description contributes nothing about why a read-only informational tool accepts CEP identity guards, leaving that surprise to the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'report' and resource 'automation boundary for advanced audio and modern color management' are present, but the key concept is abstract jargon an agent must interpret. It gives no hint how it differs from near-identical siblings like get_advanced_feature_support or get_capabilities, so an agent cannot confidently pick among them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when this tool should be called, no prerequisites, and no mention of the closely-named alternative get_advanced_feature_support. The description only implies a use case (checking what is automatable) without routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_bin_contentsGet Bin ContentsA
Read-onlyIdempotent

Get detailed contents of a specific bin (folder) including all nested items, media paths, offline status, color labels, and metadata. Searches by bin name or node ID.

NameRequiredDescriptionDefault
limitNoMaximum direct children to return. Pair with recursive false for the smallest bounded response.
bin_idYesBin name, node ID, or path (e.g., 'Footage', 'Footage/Raw'); '/' or 'root' for the project root
offsetNoZero-based offset into the bin's direct children. Pair with limit for a bounded page.
max_depthNoMaximum nested-bin depth when recursive is true. Defaults to the legacy unlimited recursion.
recursiveNoInclude items from sub-bins recursively (default: true)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds useful content-level context by listing what the result includes, such as media paths, offline status, color labels, and metadata. It does not add much beyond that, such as pagination behavior or the effect of recursive=false, though that is partly expected given the rich annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and front-loads the core action and return contents. The second sentence adds targeting information without waste. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a rich input schema with 100% coverage and an output schema, so the description need not explain return fields or guard semantics in detail. It gives enough context to understand what the tool returns and how to identify the bin. The remaining gap is sibling differentiation, which is useful but not strictly required for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters, including recursive, limit, offset, max_depth, and the optional guard objects, are already fully documented in the schema. The description only reinforces that bin selection can use a name or node ID, which the schema already states. Baseline 3 is appropriate because the schema does the heavy lifting and the description adds little parameter-specific meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: get the detailed contents of a specific bin (folder). It also scopes the result by naming nested items, media paths, offline status, color labels, and metadata. It is clear on its own, but it does not explicitly distinguish itself from close siblings such as list_project_items, search_project_items, or get_project_item_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Searches by bin name or node ID' implies how to target the tool, but there is no explicit guidance on when to use it instead of list_project_items, search_project_items, or get_project_item_info. It also does not state when not to use it or when another sibling would be preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_bridge_telemetryGet Bridge TelemetryA
Read-onlyIdempotent

Read-only, sends no command: inspect privacy-preserving aggregate bridge health (pending command/response counts, busy operations, queue age, CEP heartbeat state) and diagnose whether the CEP bridge is blocked. Use it after a timeout or before retrying: a modal dialog such as Missing Media blocks Premiere's scripting engine, so a probe script cannot run. blocking.state is idle, busy, likely_blocked_by_dialog, stuck, connector_not_running, or unknown, with reason, ages in ms, queued counts, the running tool name when known, and nextSteps. It reads only heartbeat and busy-marker timing; no OS window probe is performed (macOS needs Accessibility permission and window titles can name media), and no dialog is dismissed. Returns no paths, file names, or script contents.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_command_msNoHow long the in-flight command is expected to take, in ms (default: the bridge timeout, 30000). A command still running past this while the panel is alive is reported as likely_blocked_by_dialog. Raise it for long exports.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/idempotent/non-destructive, and the description adds real value on top: it states no command is sent, no OS window probe is performed (with the macOS Accessibility permission and media-name-in-window-title rationale), no dialog is dismissed, and no paths/file names/script contents are returned. It also enumerates the blocking.state machine (idle, busy, likely_blocked_by_dialog, stuck, connector_not_running, unknown) and the accompanying reason/ages/queued/running tool/nextSteps fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the read-only guarantee and purpose, then usage, then the state enumeration, then privacy limits — a logical order with no filler sentences. It is dense and long-ish for a telemetry tool, but each sentence carries distinct information an agent would otherwise have to guess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object, zero-required-parameter diagnostic with an output schema, the description covers purpose, trigger conditions, the full state vocabulary, timing fields, and privacy constraints. Nothing an agent needs to decide whether and how to call this is missing; return-value structure is delegated to the output schema as intended.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already fully documented in the schema, which sets the baseline at 3. The description adds no parameter-level guidance of its own — expected_command_ms, expected_cep_target, and expected_project_path are never mentioned, so the timeout tuning hint ('Raise it for long exports') exists only in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (inspect/diagnose) against a specific resource (CEP bridge health / blocked bridge) and enumerates exactly what is measured: pending command/response counts, busy operations, queue age, CEP heartbeat state. Distinct from every sibling because none of them read bridge telemetry; an agent can identify the tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit triggering conditions: 'Use it after a timeout or before retrying' and explains the underlying failure mode (a modal dialog blocks Premiere's scripting engine so probe scripts cannot run). It does not name the sibling diagnostics it supersedes in the blocked case (ping, verify_premiere_connection, can_execute, get_premiere_state), so ranking against alternatives 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.

get_capabilitiesGet CapabilitiesA
Read-onlyIdempotent

Discover Premiere operations and report backend coverage, authority, and verification requirements. Use tool_query with task keywords (for example transcript, captions, or review frames) for ranked, bounded matches available in this session. Use tool_names for exact lookups or tool_offset/tool_limit for paging. Discovery never grants authority or proves a live host is ready.

NameRequiredDescriptionDefault
tool_limitNoMaximum tool catalog entries to return. Omit with tool_offset to preserve the complete legacy response.
tool_namesNoOptional exact tool-name allowlist. Returns only those catalog entries while retaining the overall capability summary.
tool_queryNoOptional case-insensitive keywords matched against tool names and descriptions. Exact names rank first. Search defaults to 20 results with descriptions and session availability; page with tool_offset/tool_limit.
tool_offsetNoZero-based offset into the filtered tool catalog. Pair with tool_limit for an explicitly sized page.
available_onlyNoFilter to tools registered under this session's authority and tool packs. Defaults to true for tool_query, false otherwise. Set false to diagnose unavailable matches; this does not enable them.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The closing sentence 'Discovery never grants authority or proves a live host is ready' is genuinely useful behavioral context that annotations cannot convey — it tells the agent the result is not proof of host readiness. However, the description is silent on the two large guard parameters (expected_cep_target, expected_project_path), which are surprising for a discovery call and imply preflight validation behavior the agent cannot anticipate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with the resource and purpose, then the mode routing, then the caveat. Almost no waste, though 'backend coverage, authority, and verification requirements' is a slightly abstract cluster that could be sharper.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shape need not be described, and the read-only/idempotent profile is covered by annotations. The remaining gap is motivation for the nested reviewed-identity guard parameters on a read-only discovery tool, which the description never mentions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all seven parameters in detail. The description mainly restates schema facts (exact name lookup, paging, ranked matches); the only additive content is the small set of example task keywords. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear specific verbs and resources: 'Discover Premiere operations and report backend coverage, authority, and verification requirements' tells the agent exactly what comes back. It does not, however, differentiate itself from the many feature-discovery siblings (get_advanced_feature_support, get_av_feature_support), so an agent must infer why it would pick this catalog tool over those.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes between the tool's own modes: 'tool_query with task keywords' for ranked matches, 'tool_names for exact lookups', 'tool_offset/tool_limit for paging', with concrete keyword examples (transcript, captions, review frames). It gives clear usage context but offers no exclusions or comparison against the sibling support/discovery tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_caption_style_guidanceGet Caption Style GuidanceA
Read-onlyIdempotent

Read-only caption style guidance: a preset (clean, bold_pop, karaoke, podcast, lecture) and/or a custom_style spec (font, size, fill, up to 3 strokes, shadow, zone, offsets) turned into Premiere 2024+ Properties-panel steps that save a reusable whole-track Track Style. NEVER modifies caption tracks; Premiere has no caption style API.

NameRequiredDescriptionDefault
presetNoStyle preset to describe (default clean when custom_style is omitted).
custom_styleNoOptional caption look to translate into concrete Premiere UI steps. Every field is optional; at least one is required. Values are documentation only and are never applied.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it readOnly, idempotent, and non-destructive, but the description adds critical context beyond them: Premiere has no caption style API, so the tool outputs manual UI steps instead of performing changes. It also explains the end result is a reusable whole-track Track Style.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences front-load the read-only nature, enumerate the preset and custom_style inputs, and end with the key behavioral constraint. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for the tool's core purpose, especially since an output schema exists and the annotations already cover safety. It does not explain the optional expected_cep_target and expected_project_path guard parameters, but those are fully documented in the schema and are not central to guidance usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter in detail. The description lists the custom_style fields at a high level (font, size, fill, up to 3 strokes, shadow, zone, offsets) but adds no constraints or semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Read-only caption style guidance' that turns presets or custom_style into Premiere Properties-panel steps. It clearly distinguishes itself from mutation siblings by specifying it never modifies caption tracks and produces a reusable Track Style.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use it (read-only guidance for caption styling) and an explicit exclusion ('NEVER modifies caption tracks'). It does not name alternative tools such as create_caption_track or read_sequence_captions, so routing is implied rather than fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clip_adjustment_layerGet Clip Adjustment LayerB
Read-onlyIdempotent

Check if a clip is an adjustment layer

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint, and openWorldHint, so the safety profile is covered. The description adds no behavioral context beyond restating the core check, such as return semantics or operational caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted text. It is appropriately concise, though extremely terse for a tool with nested guard parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple predicate tool with an output schema and rich annotations, so the description does not need to explain return values or safety. However, it omits any mention of the optional identity-guard parameters or when those should be supplied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema itself documents all parameters thoroughly. The description adds no parameter-level meaning beyond what the schema already provides, which merits the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 checks whether a clip is an adjustment layer. It does not explicitly differentiate this tool from related siblings such as get_clip_properties or add_adjustment_layer, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, nor does it mention prerequisites, context, or exclusions. The intended use is only implied by the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clip_at_playheadGet Clip At PlayheadB
Read-onlyIdempotent

Get all clips at the current playhead position across all tracks.

NameRequiredDescriptionDefault
track_typeNoTrack type to check (default: both)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description adds the cross-track scope, which is useful, but says nothing about the guard semantics of expected_cep_target/expected_project_path or what happens when the active project diverges — behavior the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. It is efficient, though slightly thin for a tool with three parameters including nested identity guards.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the schema fully documents parameters. What is missing is contextual: how playhead state is resolved and, critically, how this differs from get_clip_at_position — the main ambiguity an agent would face.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter, including the nested identity guards, is documented in the schema. The description's phrase "across all tracks" loosely maps to the track_type default of "both," but it adds no syntax or meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ("Get all clips at the current playhead position") plus scope ("across all tracks"), so the operation is unambiguous. However, it never distinguishes itself from the near-identical sibling get_clip_at_position or from get_selected_clips, leaving the agent to guess which one matches its intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. With siblings like get_clip_at_position and get_selected_clips present, the description should state which situation selects this tool (playhead-based, all tracks vs. position-based or selection-based), but it offers none.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clip_at_positionGet Clip At PositionB
Read-onlyIdempotent

Get the clip at a specific time position on a track

NameRequiredDescriptionDefault
track_typeYesTrack type
track_indexYesTrack index (0-based)
time_secondsYesTime position in seconds
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond the basic purpose, such as what happens when no clip exists at the position or how track_type affects lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. It is appropriately concise for a simple read tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema with full parameter descriptions and the presence of an output schema, the description is sufficient for basic use. It does not explain the optional expected_cep_target or expected_project_path guards, but those are adequately documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters including track_type, track_index, time_seconds, and the optional expected identity guards are documented in the schema. The description adds no meaning beyond what the schema already provides, which is the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: getting a clip at a specific time position on a track. It distinguishes the tool from get_clip_at_playhead by specifying an explicit time position, but it does not explicitly name or contrast with sibling alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as get_clip_at_playhead or get_selected_clips. The usage is only implied by the tool name and short purpose statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clip_markersGet Clip MarkersA
Read-onlyIdempotent

Get all markers on a specific project item (source clip markers, not sequence markers).

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the source-clip-versus-sequence distinction, which is useful, but it does not add further behavioral context beyond what annotations and schema already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with zero wasted text. The core resource and the key source-versus-sequence distinction are both stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is read-only, has full annotation coverage, 100% schema description coverage, and an output schema. For selection and invocation, the key missing context would be the source/sequence marker distinction, which the description explicitly provides.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents item_id, expected_cep_target, and expected_project_path in detail. The description only implies that item_id identifies the target project item and does not add syntax or format meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Get all markers on a specific project item'. It also distinguishes the result from sequence markers, letting an agent tell this apart from sequence-marker tools without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '(source clip markers, not sequence markers)' gives a clear when-not condition. However, it does not explicitly name the alternative tool to use for sequence markers, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clip_propertiesGet Clip PropertiesC
Read-onlyIdempotent

Get detailed properties of a specific clip by its node ID

NameRequiredDescriptionDefault
node_idYesThe node ID of the clip
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing about how the optional expected_cep_target / expected_project_path guards behave (that a mismatch causes refusal) or what the call returns, even though these guard semantics are behaviorally significant and not obvious from the annotation set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with verb and resource, with no filler. It is arguably too terse rather than wasteful, so it earns credit for economy rather than penalty for padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and read-only, it has an output schema, and all three parameters are fully described in the schema, so most of what an agent needs is elsewhere. Still, in a family with many overlapping clip/property getters, the description would benefit from one clause stating the differentiator and when the guard parameters matter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the nested guard objects are documented in detail in the schema, so the description need not repeat them. The single sentence only restates that the lookup is keyed by node_id, adding no syntax or sourcing hints beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get detailed properties of a specific clip') plus the lookup key (node ID), so the intent is unambiguous. However, it does not distinguish itself from nearby siblings such as get_full_clip_info, get_qe_clip_info, or get_item_info, which an agent must choose between.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus get_full_clip_info or get_qe_clip_info, both of which appear to return clip data. There is also no mention of prerequisites (e.g., that node_id must come from a prior lookup) or when the optional guard parameters should be supplied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clip_speedGet Clip SpeedA
Read-onlyIdempotent

Get the playback speed and reverse state of a clip

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds that it returns playback speed and reverse state, which is useful context beyond annotations. It does not describe error conditions or response format, but an output schema exists, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero waste. It efficiently conveys the tool's purpose without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and comprehensive annotations, the description is largely complete for a simple read tool. It states what is retrieved, though it could briefly clarify its relationship to sibling tools like get_clip_properties, which would improve contextual completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are fully documented in the schema. The description adds no additional parameter semantics, which is acceptable given the high coverage – baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('playback speed and reverse state of a clip'), making the tool's purpose clear. It does not explicitly differentiate from siblings like get_clip_properties or get_qe_clip_info, but the focus on speed and reverse state is distinct enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb 'Get' and the resource; it's clearly a read operation for speed and reverse state. However, there is no explicit guidance on when to use this versus alternatives such as get_clip_properties or get_qe_clip_info, nor any mention of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clip_volumeGet Clip VolumeA
Read-onlyIdempotent

Read an audio clip's Volume > Level in dB. Use this to verify a level actually applied - setValue() clamps silently. Does not report Essential Sound Amplify automation.

NameRequiredDescriptionDefault
node_idYesNode ID of the audio clip
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description adds genuine value beyond them: it discloses the silent-clamping behavior of the underlying setter and a coverage limitation ('Does not report Essential Sound Amplify automation'). That limitation is exactly the kind of caveat an agent needs before trusting the read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the read target, then the reason to use it, then the caveat. No filler and nothing repeated from structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-value read with an output schema present, the description covers what is read, why, and one important blind spot. It omits any mention of the pre-flight identity guards (expected_cep_target, expected_project_path), which are described only in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id, expected_cep_target and expected_project_path are already fully documented in the schema. The description adds no parameter-level meaning (e.g. no guidance on when to pass the guard objects), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the exact property path ('Read an audio clip's Volume > Level in dB'), which unambiguously separates it from sibling getters like get_clip_properties or get_full_clip_info. An agent knows precisely what value comes back.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case: verify a level actually applied, because setValue() clamps silently. That implicitly positions it after set_clip_volume/set_clips_volume, but it does not name those siblings or say when not to use it (e.g. versus get_clip_properties).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_color_labelGet Color LabelB
Read-onlyIdempotent

Get the color label of a project item

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, destructiveHint false, and openWorldHint false, so the safety profile is covered. The description adds no behavioral context beyond the basic read purpose, such as invalid item handling or what happens when no color label exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. For a simple getter, this is appropriately sized and immediately states the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, annotations cover safety, the input schema is richly described, and an output schema exists, so the short description is minimally complete. However, it does not help the agent choose between this and related item-inspection or color-label tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents item_id, expected_cep_target, and expected_project_path in detail. The description only confirms that the operation targets a project item and adds no parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: get the color label of a project item. It is clear enough to distinguish from set_color_label, but it does not explicitly differentiate from other item-inspection tools such as get_project_item_info or get_item_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The intended use is only implied by the tool name and one-line purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_color_spaceGet Color SpaceB
Read-onlyIdempotent

Get the color space information for a project item

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety and repeatability profile is covered. The description does not contradict those annotations, but it also adds no behavioral context 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It is efficiently structured and does not waste words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has nested optional guard parameters and an output schema, but the description does not mention the guards, prerequisites, or how the result is scoped. The rich schema and output schema compensate enough for the definition to be minimally complete, but the description itself is thin for a tool with this structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents item_id and the optional guard parameters in detail. The description adds no additional meaning about parameter usage, so the baseline of 3 applies when the schema does the explanatory work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: get color space information for a project item. It is clear what the tool returns conceptually, but it does not distinguish itself from nearby sibling tools such as get_clip_properties or get_project_item_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no exclusions, and no named alternatives. The only implied usage is that an agent should call it when it needs color space information for a project item.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_duplicate_mediaGet Duplicate MediaA
Read-onlyIdempotent

Find project items that reference the same source media file. Useful for consolidation. After Effects compositions imported from the same .aep/.aepx are only grouped when their comp names also match. Groups are paged (default 100) and can be filtered by a case-insensitive item-name substring; follow nextOffset while truncated is true.

NameRequiredDescriptionDefault
limitNoMaximum duplicate media groups (a group matches contains when any item name matches) entries to return (1-500, default 100).
offsetNoZero-based index of the first duplicate media groups (a group matches contains when any item name matches) entry to return (default 0). Pass the previous response's nextOffset to read the next page.
containsNoOptional case-insensitive substring matched against project item names before paging. Omit or pass an empty string to include every entry.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, non-destructive, idempotent, so the safety profile is covered. The description goes beyond them with genuine behavioral detail: After Effects comps only group when comp names match, groups page at a default of 100, filtering is case-insensitive, and callers must follow nextOffset while truncated is true — none of which is derivable from 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences, each carrying distinct information — purpose, the AE edge case, and the paging/filter protocol — with the core purpose front-loaded. Nothing is redundant padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and thorough annotations, the description needn't explain return values, and it correctly covers the query semantics and paging contract. The remaining gap is that it never clarifies how its output relates to the consolidation tools that would consume it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents limit, offset, contains, and the CEP guard objects thoroughly. The description echoes the filter semantics and default page size but adds no syntax or format detail beyond the schema; baseline 3 applies where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Find project items that reference the same source media file' — and adds a non-obvious scoping rule for imported .aep/.aepx comps. It doesn't name the sibling it is distinct from (consolidate_duplicates, find_items_by_media_path), so the agent must infer the boundary from intent alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Useful for consolidation' gestures at the follow-up action but never names consolidate_duplicates or says when to prefer this over find_items_by_media_path. Operational guidance for narrowing (contains filter) and paging is present, but the alternative-selection guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_effect_propertiesGet Effect PropertiesB
Read-onlyIdempotent

List all properties of a specific effect on a clip, including current values

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
effect_nameYesDisplay name of the effect (e.g., 'Motion', 'Opacity', 'Lumetri Color')
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered and the description only needs to add context. It adds the useful note that current values are returned, but says nothing about failure behavior (effect not found, wrong clip) or how the expected_cep_target guard is enforced — that detail lives only in the schema descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. It is efficient, though its brevity leaves no room for the routing or prerequisite information that would raise it above adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations plus a fully documented schema carry the heavy lifting. What remains missing is how to locate the correct effect_name for a given clip, which the description assumes the agent already knows.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including per-parameter text for node_id and effect_name (with display-name examples) and extensive guard documentation for expected_cep_target and expected_project_path. The description adds no parameter meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: list the properties of a named effect on a clip, including current values. An agent can tell this reads effect parameters rather than clip-level properties. However, it never distinguishes itself from close siblings such as list_clip_effects, get_clip_properties, or get_keyframes, which an agent could easily confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisite (e.g., the effect must already be applied and identified by display name), and no mention of alternatives. The agent must infer from the name alone that this is the follow-up call after identifying an effect via list_clip_effects.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_encoder_presetsGet Encoder PresetsA
Read-onlyIdempotent

List available Adobe Media Encoder export presets, with the .epr path of each so it can be passed to export_sequence or encode_project_item. Presets are discovered by scanning the .epr files Adobe ships on disk (Premiere's ExtendScript API exposes no preset enumeration).

NameRequiredDescriptionDefault
limitNoMaximum presets to return, applied after the filter and ordering. Omit to return all; the result's total is the unpaged count.
formatNoFilter by container/format (e.g. 'H.264', 'mp4', 'QuickTime', 'WAV') or preset name (e.g. 'ProRes', 'Proxy'). Presets whose format matches come first. Omit to list all.
offsetNoNumber of presets to skip before returning, for paging with limit. Default 0.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, it discloses a non-obvious implementation trait: presets come from scanning .epr files shipped on disk because ExtendScript exposes no enumeration. That tells the agent results are filesystem-derived rather than a live host query, which usefully explains potential gaps. It doesn't say whether user-created presets are included or how the scan is scoped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary purpose and the value of the return payload, followed by the one caveat that matters. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and every parameter documented, the description only needs to frame what the tool is and why it exists, which it does. The one residual gap is the scope of the disk scan (are custom user presets included?), which an agent might want to know before relying on the list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so limit/format/offset and the CEP guard objects are already fully documented in the schema. The description adds nothing about filtering, paging, or the expected_* guard semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (Adobe Media Encoder export presets) and specifies the returned payload (.epr path per preset). It also names the downstream consumers (export_sequence, encode_project_item), which separates it from validate_export_preset and the encode/export siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the call-ordering clear by saying the returned path 'can be passed to export_sequence or encode_project_item', so an agent knows this is the lookup step preceding an export. It does not state when NOT to use it or contrast it with validate_export_preset, so it stops short of explicit alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_export_file_extensionGet Export File ExtensionA
Read-onlyIdempotent

Get the export file extension from Premiere. If Premiere returns none, infer it only for an existing .epr in a recognized Adobe Media Encoder format folder; that fallback is marked unconfirmed and should be checked before delivery.

NameRequiredDescriptionDefault
preset_pathYesFull path to the export preset file (.epr)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds meaningful behavioral context beyond annotations: the fallback inference is marked unconfirmed and should be checked before delivery, which is not captured elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary behavior and then the fallback condition. Every sentence carries relevant information with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core operation and the important fallback caveat. Given that annotations cover safety and idempotency and an output schema exists, no critical agent-facing behavior is missing, though sibling differentiation could be stronger.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents preset_path, idempotency_key, expected_cep_target, and expected_project_path in detail. The description references .epr files and the Premiere source but does not add parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get the export file extension from Premiere.' It also clarifies that a fallback inference path exists, but it does not explicitly differentiate this tool from close siblings such as validate_export_preset or get_encoder_presets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a conditional rule for the fallback: infer only for an existing .epr in a recognized Adobe Media Encoder format folder, and mark that result unconfirmed. However, it does not state when to use this tool instead of related siblings, nor does it name any alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_export_job_statusGet Export Job StatusA
Read-onlyIdempotent

Read the status of an export job started by export_sequence_job_start: queued, encoding (with AME-reported progress when events arrive), finalizing, completed, failed, cancelled, or unknown. Evidence is reported separately: Adobe Media Encoder job events recorded inside Premiere's ExtendScript engine, and Node-side observation of the output file (exists, non-empty, size and modification time unchanged across stability_window_ms and since the previous poll). completed is verified only when AME reported completion, the file is stable and non-empty, and ffprobe confirms its duration within one frame; without an AME completion event a stable file is reported as completed but unverified. Jobs started by an earlier server process report unknown (server_restarted). Read-only: it never starts, cancels, or retries a render.

NameRequiredDescriptionDefault
job_idYesjobId returned by export_sequence_job_start
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
stability_window_msNoHow long to wait between the two output-file size checks in this call (default 2000 ms)
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description explains the status lifecycle, the evidence sources (AME events and file observations), the conditions for verified vs. unverified completion, and the 'unknown' state when the server restarted. It also reinforces the read-only nature by stating it never starts, cancels, or retries a render.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then unpacks status semantics and verification details. It is dense but every sentence contributes useful behavioral context, though it could be slightly more structured (e.g., using bullets for statuses or evidence sources).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema and rich annotations, the description is complete for an agent to invoke the tool correctly. It covers all status values, the meaning of 'completed' verification, the 'unknown' fallback, and the read-only guarantee, leaving no essential behavioral question unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents all four parameters. The description reinforces the role of stability_window_ms in the evidence-gathering process and implicitly explains job_id via the start-tool reference, but adds no new meaning for expected_cep_target or expected_project_path. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Read the status of an export job started by export_sequence_job_start.' It enumerates the possible statuses (queued, encoding, finalizing, completed, failed, cancelled, unknown) and explicitly ties the tool to jobs created by a named sibling, making it easy to distinguish from generic render-queue tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this to check the status of a job started by export_sequence_job_start. It does not explicitly name alternatives (such as get_render_queue_status or wait_workflow_job) or state when not to use this tool, so it stops short of full usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_footage_interpretationGet Footage InterpretationC
Read-onlyIdempotent

Get footage interpretation settings for a project item

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, so safety adds nothing. The description says nothing about what 'settings' are returned, whether the item must be a master clip vs. clip instance, or how the optional expected_cep_target / expected_project_path guards behave (the schema notes they are CEP-only pre-command checks).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short, front-loaded sentence with no filler. It is efficient, though the brevity edges toward under-specification rather than crispness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and rich annotations exist, so return values and safety need not be explained. However, for a tool with nested guard objects and a read/write sibling, the description is thin on what footage interpretation covers (frame rate, pixel aspect, field order, alpha) and when the guards matter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the widely-documented item_id, expected_cep_target and expected_project_path parameters carry their own meaning; the description adds no additional semantics. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('get footage interpretation settings for a project item'), which is distinguishable from siblings like get_color_space or get_metadata. It does not, however, mention its natural counterpart set_footage_interpretation, leaving the read/write pairing implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to call this versus the many other read-only inspection tools (get_item_info, get_metadata, get_color_space, inspect_media_streams). The agent is left to infer applicability from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_full_clip_infoGet Full Clip InfoA
Read-onlyIdempotent

Get exhaustive information about a specific clip: all effects with every property value, source media details, footage interpretation, metadata, markers, speed, enabled state, color label, linked clips, and proxy status.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip on the timeline
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description's job is lighter. It usefully discloses the wide scope of the returned payload (effects, markers, proxy state), but says nothing about why a pure read tool accepts expected_cep_target / expected_project_path guards or how those preconditions fail – behavior the agent would otherwise need to discover from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that puts the verb and scope first and then spends its words on the return payload rather than filler. The long enumeration is dense but every item is information an agent would otherwise have to query for.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not needed, and the annotations cover the safety profile; the description supplies the payload scope. The only real gap is unexplained guard parameters, which are unusual for a read-only tool and are left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so per the rubric the baseline is 3. The description contributes nothing parameter-specific – it never mentions node_id or the expected_* guard objects, leaving all parameter meaning to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('exhaustive information about a specific clip') and enumerates exactly what is returned: effects with property values, source media, footage interpretation, metadata, markers, speed, enabled state, color label, linked clips, proxy status. This breadth implicitly separates it from narrower siblings like get_clip_properties or get_qe_clip_info, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the word 'exhaustive' – an agent can infer this is the heavyweight full-dump option versus targeted getters – but the description never states when to prefer it over get_clip_properties, get_qe_clip_info, or get_item_info, nor any cost/payload caveat for a comprehensive read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_full_project_overviewGet Full Project OverviewA
Read-onlyIdempotent

Get a comprehensive overview of the project. Use include_bin_tree false or sequence_offset/sequence_limit for a bounded response on large projects.

NameRequiredDescriptionDefault
max_bin_depthNoMaximum recursive bin-tree depth when include_bin_tree is true (default: 10).
sequence_limitNoMaximum sequences to include. Omit to preserve the complete legacy response.
sequence_offsetNoZero-based offset into project sequences.
include_bin_treeNoInclude the recursive bin tree (default: true). Set false to return project statistics and sequences only.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare that this is a safe, read-only, idempotent operation. The description adds value by warning that the response can be large and explaining which parameters bound it, which is behavior beyond what the annotations provide. It does not contradict 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the tool purpose and followed by targeted guidance for large projects. There is no redundant or wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema documentation, detailed annotations, and presence of an output schema, the description provides the essential operational context for calling the tool and bounding large responses. Its main remaining gap is not differentiating the tool from sibling project/sequence overview tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries the parameter definitions. The description adds practical meaning for include_bin_tree, sequence_offset, and sequence_limit by explaining their role in producing a bounded response on large projects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: getting a comprehensive overview of the project. It is specific enough to understand the operation, but it does not distinguish this tool from close siblings such as get_project_info or audit_project_structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives useful operational guidance for large projects by suggesting include_bin_tree=false or sequence_offset/sequence_limit for a bounded response. However, it does not say when to choose this tool over sibling overview/summary tools, nor does it name alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_full_sequence_infoGet Full Sequence InfoA
Read-onlyIdempotent

Get bounded information about a sequence (50 clips by default; follow pagination.nextOffset; markers and transitions capped at 50 per collection): settings, all tracks with lock/mute/target state, paged clips with positions/effects/speed/enabled state, bounded markers, transitions, in/out points, and work area.

NameRequiredDescriptionDefault
clip_limitNoPage size (default: 50, maximum: 200). Payload budget may shorten a page. Inspect nextOffset.
track_typeNoTrack type to page (default: both). Track counts remain available.
clip_offsetNoOffset into matching clips (matching gaps for get_timeline_gaps), video before audio (default: 0).
end_secondsNoOptional exclusive window end; must exceed start_seconds.
sequence_idNoSequence name or ID. Uses active sequence if omitted.
track_indexNoOptional zero-based track index within each selected type.
start_secondsNoOptional inclusive window start; returns overlapping items.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety burden is lifted. The description adds real behavioral value beyond that: an explicit default page size of 50, marker/transition caps of 50 per collection, and the instruction to follow pagination.nextOffset — this is the kind of truncation behavior an agent would otherwise get wrong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence, front-loaded with the verb and the bounding constraint, with the field enumeration packed into a parenthetical. It is efficient, though the run-on structure makes the enumeration harder to scan than a short bulleted listing would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained. Given the annotations cover safety and the schema covers all 9 parameters at 100% coverage, the description closes the remaining gap — boundedness and truncation — that an agent most needs to call this correctly on large sequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter meaning that the schema alone doesn't convey — the default page size, that markers and transitions are capped independently of clip pagination, and that bounding applies per collection. It doesn't cover start_seconds/end_seconds or expected_cep_target, but those are richly documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get bounded information about a sequence') and enumerates exactly what is returned — settings, tracks, clips with effects/speed/enabled state, markers, transitions, in/out points, work area. This makes it distinguishable from narrower siblings like get_sequence_structure or list_sequence_tracks, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the description signals that callers must follow pagination.nextOffset and that collections are capped, which suggests the tool is for comprehensive reads of large sequences. It never says when to prefer it over get_sequence_structure, get_timeline_summary, or get_full_clip_info, so the agent must infer from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_graphics_white_luminanceGet Graphics White LuminanceC
Read-onlyIdempotent

Get the graphics white luminance value (HDR setting) for the project

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered structurally. The description adds almost nothing beyond restating the resource, and notably omits the guard/refusal behavior (expected_cep_target, expected_project_path) that determines whether the call aborts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler and the resource front-loaded. It is efficient, though arguably too terse given the tool's guard complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, given the nested guard objects and their refuse-on-mismatch semantics, the description should at least acknowledge that the optional guards can abort the call; it leaves that entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both optional parameters and their nested guard objects are fully documented in the schema. The description contributes no additional meaning about what those parameters do, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (graphics white luminance value / HDR setting) scoped to the project. An agent can distinguish it from set_graphics_white_luminance by the get/set verb, but the description never names or references that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool versus the setter counterpart, no prerequisites, and no conditions for supplying or omitting the guard parameters. The only contextual clue is 'for the project', which is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_insertion_binGet Insertion BinA
Read-onlyIdempotent

Get the current target bin for new imports (the bin that is currently focused in the Project panel)

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds useful semantics — that the result is derived from Project panel focus, meaning the answer changes with UI state — but does not say what happens when nothing is focused or unsaved projects exist. Adequate, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the clarifying parenthetical immediately after the noun. No filler, no restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists and annotations cover safety, so the description need not explain returns. However, for a tool whose value depends on live UI focus state, it should note the failure/empty case and the optional CEP/project-path guards' relevance; that gap leaves it merely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two guard parameters (expected_cep_target, expected_project_path) are fully documented in the schema. The description adds nothing about them, which is acceptable at full coverage but leaves the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the current target bin') and parenthetically defines what an insertion bin is (the focused bin in the Project panel). This distinguishes it from siblings like get_bin_contents (contents, not the target) and get_target_tracks (tracks, not bins). It stops short of saying how it differs from list_project_items or get_project_panel_metadata explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for new imports' implies the workflow context (call this before importing media into a chosen bin), but there is no explicit when-to-use/when-not guidance and no named alternative such as get_project_info or get_bin_contents. The agent must infer the call site.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_item_infoGet Item InfoA
Read-onlyIdempotent

Get detailed type info about a project item (is it a sequence, multicam, merged clip, etc.)

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds a useful sense of the returned dimension, namely item type, but it does not describe validation behavior or any other operational details beyond what the schema and annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no wasted text. The purpose and examples are communicated efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with a rich schema and an output schema, the description is mostly complete. Its main gap is not clarifying how it differs from closely named sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so item_id and the optional guard parameters are already documented. The description adds no additional parameter semantics beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

It uses a specific verb and resource: get detailed type info about a project item. The parenthetical examples clarify what 'type info' means, but it does not distinguish itself from similar siblings such as get_project_item_info or get_full_clip_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The examples imply that this tool is used to identify whether an item is a sequence, multicam, merged clip, etc. However, there is no explicit guidance on when to use it versus the many related project-item and clip-info tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_keyframesGet KeyframesA
Read-onlyIdempotent

Get all keyframes for a specific effect property on a clip. Each key's time is in seconds from the clip's start; mediaSeconds is Premiere's stored media time. mediaTicks returns each native key time as a tick string.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
effect_nameYesDisplay name of the effect
property_nameYesDisplay name of the property
property_indexNoOptional property index from get_effect_properties; required when property_name is duplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely non-obvious semantics: time values are seconds relative to clip start, mediaSeconds is Premiere's stored media time, and mediaTicks gives native tick strings — the time-domain ambiguity is the main footgun here and it is called out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the core purpose front-loaded and the time-domain clarifications following. Every sentence supplies information an agent would otherwise have to guess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only getter with an output schema and full schema coverage, this is nearly sufficient; the output schema carries return shape. Minor gaps: ordering of returned keys, behavior when a property has no keyframes, and whether interpolation data is included.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 adds no parameter-level detail beyond the scope words 'effect property on a clip'. It says nothing about property_index disambiguation or the expected_cep_target / expected_project_path guard parameters, which the schema alone must carry.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus its scope: 'Get all keyframes for a specific effect property on a clip.' That is unambiguous against write-side siblings like add_keyframe or remove_keyframe, though it never names an alternative explicitly (e.g. get_value_at_time for sampling a value at a single time).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the name and scope; there is no statement of when to reach for this versus get_effect_properties (to find property names/index), get_value_at_time, or map_keyframe_time_domain. The 'property_index from get_effect_properties' prerequisite lives in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_last_operationsGet Last OperationsA
Read-onlyIdempotent

Read-only: list the most recent state-changing tool calls this MCP server process handled, newest first, with status (running, succeeded, failed), receipt outcome and timing. Use it after a client-side timeout before retrying an edit: a call still running, or one that already succeeded, must not be sent again. The running count includes all active calls, even outside the history window; runningOperations lists up to limit active calls and runningOperationsTruncated flags omitted entries. Entries made with idempotency_key carry idempotencyKeyHash, a 12-character SHA-256 prefix (never the raw key). Records only tool names, timing and outcomes; it does not prove Premiere state, and it starts empty when the server restarts.

NameRequiredDescriptionDefault
limitNoHow many operations to return, newest first (default 10, max 50).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent and non-destructive, yet the description still adds substantial context: records are per-process, start empty on restart, include only tool names/timing/outcomes, and do not prove Premiere state. It also explains the running count spans calls outside the history window, that runningOperationsTruncated flags omissions, and that idempotency key hashes are 12-character SHA-256 prefixes, never raw keys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the read-only scope and the timeout/retry use case, then the edge-case details. Every sentence carries information, though the single dense block of caveats could be split for easier scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema covers return values, so the description only needed to explain scope, lifecycle (empty on restart), limits and trust boundaries — all of which it does. Nothing an agent needs to interpret the log is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics: the limit governs both history entries and the runningOperations list, and truncation is signaled explicitly. That is meaning beyond the schema's per-property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb, resource and scope: list the most recent state-changing tool calls handled by this MCP server process, newest first, with status, receipt outcome and timing. This is clearly separable from siblings like inspect_operation_recovery or acknowledge_operation_recovery, which operate on recovery state rather than a live operation log.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it after a client-side timeout before retrying an edit' names a concrete trigger and the decision it drives (a running or succeeded call must not be resent). It stops short of naming the alternative recovery tools or saying when this log is not the right source, so it is clear guidance without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_linked_itemsGet Linked ItemsB
Read-onlyIdempotent

Get all clips in the sequence that are linked to the same source as a given clip

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds only the resolution semantics ('same source'), and says nothing about which sequence is searched (implied active) or how link groups are ordered/deduplicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficient, though the brevity is part of why usage and scope details are missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and full annotation coverage, the remaining gaps are scope-related: which sequence is used when the caller passes only node_id, and how this differs from get_clip_links. Adequate but leaves an agent guessing on disambiguation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id and the optional CEP/project-path guards are already fully documented. The description mentions 'a given clip' but adds no extra meaning about the guard parameters or their refusal behavior. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get all clips ... that are linked to the same source as a given clip') and gives the resolution scope. It is clear but does not differentiate itself from the close sibling get_clip_links, which an agent could easily confuse with this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no exclusion, and no named alternative. An agent must infer from the name alone whether to call this or get_clip_links / find_item_usages for related lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_metadataGet MetadataA
Read-onlyIdempotent

Get metadata for a project item. Returns bounded parsed fields by default; GPS, serials, and personal contact/author fields are omitted. Raw packets require explicit include_project_metadata/include_xmp_metadata and include_sensitive true. Media paths require include_media_path true. Project metadata XML and file/clip XMP are separate packets; disable either when identity/path is enough. Prefer inspect_project_panel_metadata_uxp item_columns or manage_metadata_uxp inspect_fields for visible columns. This is not the premiere://project/metadata resource. GPS and serials are omitted from parse_fields unless include_sensitive is true.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
parse_fieldsNoParse project metadata and XMP into named fields (default true). Set false for identity-only or explicitly requested raw packets.
include_sensitiveNoOpt in to sensitive GPS, serial, author, and contact fields. Required for any raw packet; default false.
include_media_pathNoOpt in to the full source media path, which can identify the local user and folders; default false.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
include_xmp_metadataNoOpt in to raw XMP XML (maximum 256 Ki characters). Requires include_sensitive true; default false. Set false to skip reading this packet entirely.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
include_project_metadataNoOpt in to raw Project Metadata XML (maximum 256 Ki characters). Requires include_sensitive true; default false. Set false to skip reading this packet entirely.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Read-only annotations already cover safety, and the description adds substantive behavior: sensitive GPS/serials/contact/author fields are omitted by default, raw packets require explicit opt-ins, media paths require opt-in, and XML/XMP packets are separate. No annotation contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded and appropriately sized for an 8-parameter, privacy-sensitive tool. It slightly repeats the GPS/serials omission at the beginning and end, which is avoidable redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex metadata read with nested schema and an output schema, the description covers defaults, privacy behavior, opt-in requirements, packet separation, and alternatives. Return values are left to the output schema, so no call-critical context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds cross-parameter semantics beyond individual schema fields: include_sensitive is required for raw packets and include_media_path gates path exposure. It leaves guard parameters such as expected_cep_target and expected_project_path to the schema, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get metadata for a project item') and immediately scopes default parsed fields versus raw packets, making it distinguishable from metadata/XMP siblings. It also explicitly says it is not the premiere://project/metadata resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance: disable XML/XMP packets when identity/path is enough, use include_sensitive for raw packets, use include_media_path for media paths, and prefer inspect_project_panel_metadata_uxp or manage_metadata_uxp for visible columns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mogrt_componentGet Mogrt ComponentA
Read-onlyIdempotent

Get MOGRT (Motion Graphics Template) component parameters from a clip. Each parameter includes textValue (visible text extracted from textEditValue when present). Pass expected_values to audit text controls such as Headline; the result flags verified, mismatch, or missing_property per field. Reads the stored property, not the Essential Graphics panel display, which Premiere can show stale (host UI behavior this tool cannot refresh).

NameRequiredDescriptionDefault
node_idYesNode ID of the MOGRT clip on the timeline
expected_valuesNoOptional read-only audit map of MOGRT text parameter display names to the text each should contain (for example { "Headline": "Chapter 3" }). Result audit.status is verified, mismatch, or missing_property.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, read-only, idempotent operation. The description adds non-obvious behavioral context: textValue is extracted from textEditValue, expected_values produces verified/mismatch/missing_property flags, and the tool reads the stored property rather than the potentially stale Essential Graphics panel display. That stale-UI caveat is valuable beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three compact sentences, front-loaded with purpose, then audit behavior, then the stale-panel caveat. Every sentence contributes useful information without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With read-only annotations, a fully described input schema, and an output schema present, the description supplies what an agent needs to invoke the tool correctly. The main non-obvious limitation—Premiere's panel display can be stale—is explicitly disclosed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id, expected_values, expected_cep_target, and expected_project_path are already documented in the schema. The description adds limited extra meaning around expected_values and textValue, but largely restates schema semantics; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get MOGRT (Motion Graphics Template) component parameters from a clip.' That is more specific than generic clip-property tools. It does not explicitly name a sibling alternative such as get_clip_properties or get_effect_properties, so it falls short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete usage scenario: 'Pass expected_values to audit text controls such as Headline,' and explains the resulting audit statuses. However, it does not say when to choose this tool over alternatives or when not to use it, leaving usage mostly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_next_edit_pointGet Next Edit PointB
Read-onlyIdempotent

Find the next or previous edit point (clip boundary) from the playhead position.

NameRequiredDescriptionDefault
directionNoDirection to search (default: next)
track_typeNoTrack type to check (default: both)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds only the playhead-relative scoping ('from the playhead position'), and says nothing about what happens at the start/end of the sequence or what the large expected_cep_target guard enforces.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the core action and its reference point come first. Nothing is repeated or wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the annotations carry the safety profile. The remaining gap is boundary/edge-case behavior (no edit point found, playhead at sequence limits) and any hint about why the expected_cep_target guard exists on a read-only query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so direction, track_type and the nested CEP guard objects are all documented in the schema. The description merely restates the direction options and adds no syntax, default, or interaction detail beyond the structured fields, which is the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Find) and resource (edit point / clip boundary) with a clear reference frame (from the playhead position) and both search directions. It does not, however, distinguish itself from close siblings like move_playhead_to_edit or navigate_playhead, so an agent must infer the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not-to-use, or alternative named, despite several sibling tools that also navigate the playhead or edit points. The description implies a query context but leaves all routing decisions to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_offline_mediaGet Offline MediaA
Read-onlyIdempotent

Find all offline/missing media in the project with their expected file paths. Essential for diagnosing broken links.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds only the return payload (expected file paths); it says nothing about scope (whole project vs. active sequence), whether an open/saved project is required, or how the expected_cep_target/expected_project_path guard behaves when the active project differs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the scope and result, zero filler. The second sentence earns its place by signaling the primary diagnostic use case.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full annotation coverage, return format and safety need no explanation. What is missing is only the scope of the scan (project-wide vs. sequence-bound) and its relationship to check_offline_media, which for a nested-schema tool with guard parameters is a small but real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the nested guard objects, so the baseline of 3 applies. The description never mentions that both parameters are optional precondition guards, but it does not need to since the schema documents them in detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find all offline/missing media in the project') plus the payload ('expected file paths'), so the agent knows exactly what comes back. However, it does not distinguish itself from the near-identical sibling check_offline_media, leaving the agent to guess which one to call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Essential for diagnosing broken links' gestures at the use case but names no alternative and gives no exclusion criteria. With check_offline_media, relink_media, refresh_media and find_items_by_media_path all present in the sibling list, the agent needs routing guidance that this description does not supply.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_operation_performanceGet Operation PerformanceC
Read-onlyIdempotent

Read content-free local median/p95 stage timing, payload sizes, and bounded analysis cache occupancy. Missing measurements remain unknown.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world, non-destructive, so safety is covered. The description adds genuine context beyond that: results are content-free (privacy posture), the local scope, and that cache occupancy reporting is bounded with missing measurements surfaced as unknown rather than zero. It stops short of saying whether this requires a running analysis job or whether timing windows are reset.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler, and the scope qualifier ('content-free local') is front-loaded. Slight cost for jargon density, which forces the reader to decode 'stage timing' and 'bounded analysis cache occupancy' rather than state them plainly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value shape needn't be explained. Still, for a metrics/introspection tool among dozens of diagnostics siblings, the description leaves key questions open: what an 'operation' or 'stage' is, whether measurements are per-session or cumulative, and when this tool is the right choice. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (expected_cep_target, expected_project_path) are fully documented in the schema at 100% coverage, so the baseline is 3. The description adds no parameter meaning at all, and notably never clarifies that these guards are optional and mostly inert for a local-only tool, which is the one thing it could have usefully said beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb ('read') and the resource category (local stage timing, payload sizes, cache occupancy) are stated, which identifies this as a telemetry/diagnostics read. However, the terms 'stage timing' and 'bounded analysis cache occupancy' are internal jargon and the description never says whose operations these metrics cover or how they relate to the sibling diagnostics tools like get_bridge_telemetry or inspect_operation_recovery. Purpose is inferable but not crisp.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus the many adjacent diagnostics tools (get_bridge_telemetry, get_last_operations, inspect_workflow_job, inspect_operation_recovery). No preconditions, no exclusions, no alternatives named. The 'local' qualifier implies it does not touch Premiere, but that 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.

get_playhead_positionGet Playhead PositionA
Read-onlyIdempotent

Get the current playhead (CTI) position in the active sequence

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare this as read-only, idempotent, non-destructive, and not open-world. The description adds that the reading applies to the active sequence and is the CTI position, but it does not mention behavior when no active sequence exists or other 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no redundant or wasted language. It communicates the core operation and scope efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the read-only annotations, the output schema, and complete schema descriptions, the definition is largely complete. A minor gap is that it does not state what happens if there is no active sequence, but this is not a major omission for an agent selecting the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two optional guard parameters are fully documented in the schema. The description adds no parameter-specific meaning beyond what the schema already provides, which is appropriate for a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: get the current playhead (CTI) position. It also scopes the result to the active sequence, making it clearly distinct from sibling mutation tools such as set_playhead_position and navigation tools such as navigate_playhead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose: call this when the current playhead position in the active sequence is needed. However, the description does not explicitly state when to use this versus siblings like get_clip_at_playhead, get_source_monitor_position, or navigate_playhead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_premiere_stateGet Premiere StateA
Read-onlyIdempotent

Get a comprehensive snapshot of the current Premiere Pro state: project info, active sequence, playhead position, selected clips, and available sequences. The best first call to understand the current context.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered structurally; the description adds the concrete payload (project info, active sequence, playhead, selected clips, sequences), which is genuine context. It says nothing about the expected_cep_target / expected_project_path guards, but those are fully documented in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first front-loads what the snapshot contains, the second gives the usage cue. No filler and no repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the 100%-covered parameter schema handles the guard parameters. What remains is that the description does not clarify the relationship to the other aggregate or granular read tools, a minor but real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are optional precondition guards with detailed per-field descriptions, so the schema carries this dimension. The description contributes nothing about them, which is acceptable but not additive; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Get') plus resource ('Premiere Pro state'), with the snapshot contents enumerated (project info, active sequence, playhead, selected clips, sequences). The 'comprehensive snapshot' framing distinguishes it from the granular siblings like get_playhead_position or get_selected_clips, though it does not explicitly name them or the other aggregate tools (get_full_project_overview, get_timeline_summary).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'The best first call to understand the current context' gives a clear entry-point recommendation that matches the readOnly/idempotent profile. There are no explicit exclusions, so an agent is not told when to prefer a narrower sibling instead, which keeps it 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.

get_project_infoGet Project InfoC
Read-onlyIdempotent

Get information about the currently open Premiere Pro project

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only the "currently open" scope and omits the notable behavior disclosed in the schema: the expected_cep_target and expected_project_path fail-closed guards that make the tool refuse when the active project differs or is unsaved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficient, though its brevity is partly under-specification rather than compression of useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values needn't be explained, and the nested guard parameters are documented in the schema. What is missing is disambiguation from the numerous other project/state readers and any mention of the refusal semantics that affect how an agent should prepare a call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two optional guard parameters are already documented in detail, and the baseline of 3 applies. The description adds nothing about parameters, not even that they are optional or that omitting them preserves existing behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a verb and resource ("Get information about ... Premiere Pro project") with the important scope qualifier "currently open", but "information" is unspecified and the description does nothing to separate it from close siblings like get_full_project_overview, get_premiere_state, or get_project_panel_metadata. An agent cannot tell from the text what this returns that those do not.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no named alternative. With roughly 250 sibling tools including several project-level readers, the absence of any routing hint is a real gap rather than a minor omission.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_item_infoGet Project Item InfoA
Read-onlyIdempotent

Get detailed information about a project item (media file in the project panel): media path, resolution, duration, frame rate, codec info, metadata, color label, offline status, in/out points, and proxy status.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds the scope of returned fields (media path, codec, offline status, proxy status, etc.), but since an output schema exists, that enumeration is partially redundant; it says nothing about permissions, latency, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the verb and resource, then gives a compact field list with zero filler. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only inspection tool with an output schema and rich 100%-covered input schema, the description is nearly sufficient: it tells the agent what data comes back and the annotations cover safety. The only material gap is routing guidance against the many sibling inspection tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all three parameters, so the schema already documents item_id and the optional expected_cep_target / expected_project_path guards in detail. The description adds no parameter-level meaning beyond implying a project-item target, which is the correct baseline-3 outcome when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource ('Get detailed information about a project item') and clarifies scope ('media file in the project panel'), then enumerates the exact fields returned. It does not explicitly distinguish itself from near-siblings like get_item_info, inspect_project_item_av_metadata, or get_clip_properties, so an agent must still infer which to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the phrase 'Get detailed information about a project item.' There is no explicit when-to-use guidance, no exclusions, and no named alternative for cases where a lighter-weight call like get_item_info or get_clip_properties would be preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_panel_metadataGet Project Panel MetadataA
Read-onlyIdempotent

Get the current Project-panel column layout as XML. This is schema/layout configuration, not per-item Scene/Shot/Take values; use inspect_project_panel_metadata_uxp item_columns or get_metadata for those. Output is capped by max_chars (default 20000); when truncated is true the XML is incomplete and must not be passed to set_project_panel_metadata.

NameRequiredDescriptionDefault
max_charsNoMaximum characters of metadata XML to return (256-200000, default 20000). Longer XML is cut at this length and reported with truncated: true and totalChars.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe read, so the description's real contribution is the output-capping behavior and the truncated-flag hazard, which are genuinely new. It does not mention the CEP-vs-UXP guard behavior of expected_cep_target in prose, but the schema carries that fully, so the gap is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the scope statement, then the disambiguation, then the truncation caveat. No filler and no repetition of the deeply documented expected_cep_target/expected_project_path parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values needn't be explained; what remains — what this returns, what it isn't, what truncation means, and where truncated XML must not go — is all covered for a read-only getter with three optional params.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds meaning by tying max_chars to a truncated:true state and to a forbidden downstream use, which the schema alone doesn't express. The default value itself is a restatement of the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returning the Project-panel column layout as XML. It immediately disambiguates from the nearest confusion (per-item Scene/Shot/Take metadata) and names the siblings that serve that other need.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when NOT to use this tool ('not per-item Scene/Shot/Take values') and redirects to inspect_project_panel_metadata_uxp item_columns or get_metadata. It also gives a hard downstream rule: truncated output must not be passed to set_project_panel_metadata.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_scratch_disksGet Project Scratch DisksA
Read-onlyIdempotent

Get the project's scratch disk locations (captured media, previews, auto-save, Motion Graphics template media, and more). Premiere's scripting API has no scratch-disk getter, so the settings are read from the saved .prproj file; unsaved changes are not reflected. 'SameAsProject' resolves to the project's folder.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantive behavioral context beyond the read-only/idempotent annotations: the values are parsed from the saved .prproj because the scripting API has no getter, so unsaved changes are not reflected, and 'SameAsProject' is resolved to the project folder. This tells the agent how fresh and how interpreted the data is, which annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences, front-loaded with what is returned, followed by the data-source caveat and the SameAsProject note. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value shape need not be described, and the stale-data caveat is the key behavioral fact for a read tool. Minor gap: it doesn't hint that the optional expected_project_path guard is CEP-only and causes refusal, though the schema covers this in detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both optional guard parameters, so the schema already explains expected_project_path and expected_cep_target fully. The description mentions no parameter behavior at all, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the project's scratch disk locations') and enumerates the concrete categories returned (captured media, previews, auto-save, Motion Graphics template media). This distinguishes it clearly from the sibling mutators set_scratch_disk_path and set_project_scratch_disk.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: it is evidently the read counterpart to the scratch-disk setters, and the note that data comes from the saved .prproj hints at when the result is trustworthy. It never explicitly states when to prefer this tool, nor names set_project_scratch_disk as the way to change values.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_qe_clip_infoGet Qe Clip InfoA
Read-onlyIdempotent

Get QE DOM information about a clip, including properties not available through the standard API.

NameRequiredDescriptionDefault
clip_indexYesClip index on the track (0-based)
track_typeYesTrack type
track_indexYesTrack index (0-based)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare that this is a read-only, idempotent, non-destructive operation, so the safety profile is clear. The description adds that the returned information includes QE DOM properties unavailable through the standard API, but it does not explain CEP-only behavior or other environment constraints mentioned in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted language. It states the core action and the differentiating value proposition immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and detailed input schema reduce what the description must cover, and annotations handle the safety profile. However, for a tool with complex CEP guard parameters and many sibling getters, the description does not help an agent understand the QE DOM environment or confidently route between similar retrieval tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters, including the nested expected_cep_target and expected_project_path guards, are already well documented in the schema. The description adds no parameter-specific meaning beyond the schema, which is acceptable at the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: get QE DOM information about a clip. The phrase 'properties not available through the standard API' usefully distinguishes it from standard clip-property getters, though it does not name the closest sibling tools explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies when to use the tool by contrasting QE DOM properties with the standard API, but it does not explicitly name alternatives such as get_clip_properties or get_full_clip_info, nor does it state when not 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.

get_render_queue_statusGet Render Queue StatusA
Read-onlyIdempotent

Report the Adobe Media Encoder queue running state, or fail closed with a named capability error when this Premiere build exposes no queue-status method on app.encoder.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real behavior: it fails closed with a named capability error when app.encoder lacks a queue-status method. That failure-mode disclosure is genuinely useful and not derivable from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the primary action and tucks the failure mode into a subordinate clause. Dense but nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only status report with an output schema, the description covers the main risk (absence of the host API) and says how it degrades. It doesn't sketch what the reported state contains, but the output schema handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (expected_cep_target, expected_project_path) have full schema descriptions at 100% coverage, so the schema carries parameter meaning entirely. The description mentions none of them; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: reports the Adobe Media Encoder queue running state. That distinguishes it clearly from get_export_job_status and add_to_render_queue, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied — call this to learn whether the AME queue is running. It offers no explicit when-to-use vs. get_export_job_status or get_encoder_presets, and no prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_selected_clipsGet Selected ClipsB
Read-onlyIdempotent

Get the currently selected clips in the active sequence

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered by structured data. The description adds only that the read is scoped to the active sequence; it does not say what happens with no active sequence or with an empty selection. Given the annotation coverage, a 3 is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. Nothing is redundant and the resource is named immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover safety. However, for a tool whose result depends on selection state, the description omits what the response looks like when nothing is selected or no sequence is active, leaving a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: expected_cep_target and expected_project_path are fully documented in the schema as reviewed-identity guards, and the description adds nothing about them. Baseline 3 applies since the schema carries the full burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the currently selected clips') plus the scope ('in the active sequence'), so an agent knows this reads selection state rather than changing it. It does not name the selection-mutating siblings (select_all_clips, deselect_all_clips, set_clip_selection), so the differentiation is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this instead of get_clip_at_playhead, get_clip_at_position, or list-based reads, and no mention of preconditions such as an active sequence being required. The 'active sequence' phrase implies context but gives no when/when-not rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sequence_countGet Sequence CountB
Read-onlyIdempotent

Get the total number of sequences in the project.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond them: no statement about which project is inspected, whether nested/binned sequences are counted, or how the guard parameters affect behavior. With an output schema present, some gaps are tolerable, but there is zero added behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is appropriately sized, though it is thin enough that it mostly restates the tool name rather than expanding on it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only count with annotations and an output schema, the description covers the core purpose. However it leaves unresolved whether "the project" means the active project, whether all sequences (including bins) are counted, and what the guard parameters protect — points the schema alone doesn't fully answer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so expected_cep_target and expected_project_path are fully documented in the schema, giving the baseline 3. The description does not mention either guard parameter, but since the schema does the work, no penalty applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Get the total number of sequences") and the scope ("in the project"), so an agent can tell it apart from list_sequences, which returns items rather than a count. It doesn't explicitly name that sibling, but the count-vs-list distinction is clear from the wording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the "total number" framing — call this when only a count is needed — but the description never says when to prefer it over list_sequences or get_project_info, nor any prerequisites. Adequate for a trivial read, but no explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sequence_in_out_pointsGet Sequence In Out PointsC
Read-onlyIdempotent

Get the current sequence in and out points

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered there. The description adds nothing beyond that — it does not explain what happens when expected_cep_target or expected_project_path mismatch, that these CEP-only guards are refused by UXP, or that the tool fails on an unsaved project, all of which are behavioral facts an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no waste and a front-loaded verb. It is efficient, though its brevity borders on under-specification rather than true conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover the safety profile. Still missing is which sequence is targeted by default, what the identity guards do, and any failure mode — enough gaps that an agent could call it correctly but not predict its behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are optional with detailed inline documentation, so the schema does the heavy lifting. The description mentions no parameters at all, leaving the baseline of 3 — adequate but contributing zero semantic value of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (get the sequence's in and out points), which is clear enough to act on. However, it never distinguishes itself from nearby siblings such as get_work_area, get_source_monitor_info, or set_sequence_in_out_points, nor does it say whether it reads the active sequence or the sequence identified by the expected_cep_target guard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all: no mention of prerequisites (an open, saved project and active sequence), no exclusions, and no pointer to the setter/clearer siblings. Usage is only inferable from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sequence_markers_by_typeGet Sequence Markers By TypeB
Read-onlyIdempotent

Get all markers of a specific type (comment, chapter, web link, etc.) from a sequence.

NameRequiredDescriptionDefault
marker_typeYesType of marker to filter
sequence_idNoSequence name or ID. Uses active sequence if omitted.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully handled elsewhere. The description adds the useful scope fact that results come from one sequence and are type-filtered, but says nothing about ordering, empty results, or how the active-sequence fallback behaves. 'etc.' is also slightly misleading against a closed five-value enum.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with no filler, stating the action before the qualifier. It is efficient but arguably under-specified for a tool with four parameters, and 'etc.' wastes a word while implying an open set that the enum does not have.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and annotations carry safety. However, the description is silent on the two guard parameters (expected_cep_target, expected_project_path) and on the active-sequence fallback, which are the non-obvious parts of calling this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enum values, the optional sequence_id, and the CEP/project-path guard objects are all documented in the schema itself. The description echoes a few enum members (comment, chapter, web link) but adds no syntax, defaults, or behavior for marker_type beyond what the schema states; the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Get all markers') and narrows scope with a type filter drawn from the sequence. It is clearly distinguishable from a generic marker lister, but it never names a sibling such as list_markers or get_clip_markers to make the boundary explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to prefer this over list_markers, get_clip_markers, or list_markers-style siblings, and no prerequisites or exclusions. The only guidance is implicit in the phrase 'of a specific type,' which the agent must infer on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sequence_settingsGet Sequence SettingsB
Read-onlyIdempotent

Get the settings (resolution, frame rate, etc.) of a sequence

NameRequiredDescriptionDefault
sequence_idNoSequence ID or name. Uses active sequence if omitted.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds examples of settings returned but does not disclose error behavior, permissions, or edge cases; for a simple read operation this is adequate with gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It is appropriately sized for a simple getter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the annotations/schema are rich, so the description need not explain return values or safety. It is complete enough to invoke correctly, though it remains weak on helping the agent select this tool over similar siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including sequence_id behavior when omitted. The description adds no parameter meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('settings of a sequence'), and examples such as resolution and frame rate clarify the kind of data returned. It stops short of 5 because it does not distinguish this tool from siblings like get_full_sequence_info or inspect_sequence_av_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool, when not to use it, or which sibling to choose instead. The intended usage is only implied by the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sequence_structureGet Sequence StructureA
Read-onlyIdempotent

Get a bounded structural page of the active sequence (50 clips by default; follow pagination.nextOffset): all track counts, paged clips with positions, gaps, and clip metadata. Essential for understanding timeline state before making edits.

NameRequiredDescriptionDefault
clip_limitNoPage size (default: 50, maximum: 200). Payload budget may shorten a page. Inspect nextOffset.
track_typeNoTrack type to page (default: both). Track counts remain available.
clip_offsetNoOffset into matching clips (matching gaps for get_timeline_gaps), video before audio (default: 0).
end_secondsNoOptional exclusive window end; must exceed start_seconds.
sequence_idNoSequence name or ID. Uses active sequence if omitted.
track_indexNoOptional zero-based track index within each selected type.
start_secondsNoOptional inclusive window start; returns overlapping items.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered; the description adds the meaningful behavioral fact that results are paged (50 by default) and that pagination.nextOffset must be followed. It also discloses the payload composition, which helps the agent budget context. It does not mention truncated pages due to payload budget, but that is covered in 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight clauses, front-loaded with the core action and paging default before the payload inventory and the pre-edit rationale. No filler, though the parenthetical could be trimmed since the schema repeats the default.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and it correctly focuses on paging behavior and pre-edit usage. For a 9-parameter tool with nested expected_cep_target/expected_project_path guards, it omits any mention of when those guard parameters matter, leaving a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including defaults for clip_limit, track_type, clip_offset, and sequence_id, so the schema carries the parameter burden. The description restates the default page size and the nextOffset contract but adds no syntax or format details beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get a bounded structural page of the active sequence') and enumerates the payload contents (track counts, paged clips with positions, gaps, clip metadata). It does not explicitly distinguish itself from close siblings like get_full_sequence_info, list_sequence_tracks, or get_timeline_gaps, so an agent must infer that 'bounded page' means the lightweight alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Essential for understanding timeline state before making edits' gives a clear triggering context for when to reach for this tool. It offers no explicit exclusions or named alternatives, so the agent is not told when to prefer get_full_sequence_info or inspect_timeline_snapshot instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_source_monitor_infoGet Source Monitor InfoA
Read-onlyIdempotent

Get information about the clip currently loaded in the Source Monitor.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds only the state-dependency hint ('currently loaded'), and says nothing about behavior when the Source Monitor is empty or how identity guards fail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with the key scope up front and no wasted words. It is economical, though it is arguably too terse given the complexity of the tool's guard parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The remaining gap is the empty/absent Source Monitor case and the meaning of the optional identity guards, which the schema documents in depth.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with detailed nested guard fields (expected_cep_target, expected_project_path), so the schema carries the semantics. The description mentions no parameters at all, matching the baseline for fully documented schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get information about the clip') scoped to the Source Monitor, which is a distinct surface from the timeline or project panel. It implicitly separates from get_source_monitor_position, but does not name any sibling to make the boundary explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the phrase 'currently loaded in the Source Monitor'; there is no statement of when to call this versus get_source_monitor_position, open_in_source, or get_full_clip_info. An agent must infer the workflow from the sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_source_monitor_positionGet Source Monitor PositionA
Read-onlyIdempotent

Get the current time indicator position in the Source Monitor

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say what 'position' is returned as (ticks, frames, timecode), what happens when no source clip is loaded, or what the optional expected_cep_target/expected_project_path guards do at call time.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the core action is the first thing read. Nothing in it is redundant or wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter read of a single scalar, and with an output schema present to describe the return value and annotations covering the safety profile, the description supplies everything needed to call it correctly. No material gap remains for an agent deciding whether and how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are optional and schema coverage is 100%, so the schema carries the full burden of documenting the reviewed-identity and project-path guards, including the CEP-only refusal semantics. The description adds no meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the current time indicator position in the Source Monitor'), which is precise enough to act on. However, it does not distinguish itself from nearby siblings such as get_source_monitor_info, get_playhead_position, or get_source_in_out, leaving the agent to infer which one it needs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose implies when the tool is relevant (querying the source monitor playhead), but there is no explicit when-to-use guidance, no exclusions, and no mention of the obvious alternatives like get_source_monitor_info or get_playhead_position. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_target_tracksGet Target TracksA
Read-onlyIdempotent

Get which tracks are currently targeted for editing. Premiere allows several video or audio tracks to be targeted at the same time; every targeted track is listed. Tracks whose state cannot be read are listed under unreadable.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine value by disclosing that multiple tracks may be targeted and that unreadable states are surfaced in a separate bucket rather than erroring. It does not say what happens when no sequence is active or how partial read failures affect the rest of the result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core answer, followed by the multi-target semantics and the unreadable-state caveat. No filler and nothing buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only query with full annotations and an output schema, the description covers purpose and result shape adequately. The remaining gap is scope: it never says the tracks come from the active sequence, which the agent must know to interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are optional guard parameters (expected_cep_target, expected_project_path) with 100% schema description coverage, so the schema does the work. The description never mentions them or explains when the guard is useful, so it adds nothing beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: retrieving which tracks are currently targeted for editing. It also explains the multi-target semantics of Premiere and the 'unreadable' bucket, which no sibling duplicates. It stops short of explicitly distinguishing itself from neighbors like list_sequence_tracks or get_track_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the read-side counterpart to set_target_track / set_all_tracks_targeted. There is no explicit when-to-use, no mention of the alternative tools, and no statement of prerequisites (e.g. that an active sequence must exist).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_timeline_gapsGet Timeline GapsA
Read-onlyIdempotent

Find a bounded page of gaps (50 by default; follow pagination.nextOffset) on the timeline between clips. Useful for identifying where content is missing or where clips can be tightened.

NameRequiredDescriptionDefault
clip_limitNoPage size (default: 50, maximum: 200). Payload budget may shorten a page. Inspect nextOffset.
track_typeNoWhich track type to analyze (default: both)
clip_offsetNoOffset into matching clips (matching gaps for get_timeline_gaps), video before audio (default: 0).
end_secondsNoOptional exclusive window end; must exceed start_seconds.
sequence_idNoSequence name or ID. Uses active sequence if omitted.
track_indexNoOptional zero-based track index within each selected type.
start_secondsNoOptional inclusive window start; returns overlapping items.
min_gap_secondsNoMinimum gap duration in seconds to report (default: 0.04 = ~1 frame at 24fps)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (read-only, idempotent, non-destructive), so the bar is lower. The description adds pagination behavior (default 50, follow pagination.nextOffset), which is useful, but it does not describe how gaps are computed, how track selection affects results, or other behavioral details beyond what the schema already exposes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with zero waste. The core action and pagination constraint are front-loaded, followed by a brief usage-oriented rationale.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, output schema, and safety annotations, the description covers the essential purpose and pagination behavior. It is nearly complete, though a brief note on how gaps relate to selected tracks or the min-gap threshold would improve agent confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all ten parameters and nested structures. The description mentions only the default page size and pagination continuation, which adds little beyond the structured parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — find gaps on the timeline between clips — and mentions the bounded-page nature. It is clear enough to distinguish from general timeline summaries, though it does not name or explicitly contrast with siblings such as get_timeline_summary or detect_silence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives implied usage context (identifying missing content or places to tighten clips) but does not say when to use this tool versus alternatives, nor any exclusions or prerequisites. The guidance is useful but stops short of explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_timeline_summaryGet Timeline SummaryA
Read-onlyIdempotent

Get a human-readable summary of the timeline: total duration, clip count per track, total gaps, coverage percentage, used media files, effect usage, and marker overview. Great for a quick understanding of sequence state.

NameRequiredDescriptionDefault
sequence_idNoSequence name or ID. Uses active sequence if omitted.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond that — it lists summary contents, which is output detail already covered by the output schema, and says nothing about guard parameters or return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, with the summary contents front-loaded and the intended use case appended. Every sentence contributes to understanding the tool, with no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that annotations cover safety and idempotency, the schema fully documents all three parameters, and an output schema exists, the description provides enough context for an agent to know this is a read-only overview tool. Nothing needed to select or invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so sequence_id and the optional guard parameters are fully documented in the schema. The description adds no parameter-level semantics, which is acceptable given the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — get a timeline summary — and enumerates exactly what the summary contains. It does not explicitly contrast itself with siblings like get_full_sequence_info or get_timeline_gaps, so it falls short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence 'Great for a quick understanding of sequence state' implies an overview use case, but the description does not say when to choose this tool over alternatives such as get_full_sequence_info, get_timeline_gaps, or get_used_media_report. The usage context is only implied, not explicitly routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_total_clip_countGet Total Clip CountB
Read-onlyIdempotent

Get the total number of clips across all tracks in the active sequence.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds the useful scoping detail that counting spans all tracks rather than selected or targeted tracks, but says nothing about behavior when no active sequence exists or how the optional CEP/project guards affect the call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the scope qualifier ('across all tracks in the active sequence') appears immediately after the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations carrying safety semantics and an output schema covering return values, this is nearly complete for a simple read tool. The only meaningful omission is any hint about failure when no active sequence is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two optional guard parameters (expected_cep_target, expected_project_path) are fully documented in the schema itself. The description adds no parameter information, which is acceptable at baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get), resource (total clip count), and scope (all tracks in the active sequence), so the returned quantity is unambiguous. It does not distinguish itself from near-siblings such as get_sequence_count, get_timeline_summary, or get_full_sequence_info, which an agent could easily confuse with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to prefer this over alternatives like get_full_sequence_info or get_timeline_summary, and no stated preconditions (e.g., requires an active sequence to be open). Usage must be inferred entirely from the resource noun.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_track_infoGet Track InfoB
Read-onlyIdempotent

Get detailed information about a specific track: name, clip count, muted, locked, targeted, and list of all clips.

NameRequiredDescriptionDefault
track_typeYesTrack type
track_indexYesTrack index (0-based)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a safe read-only, idempotent, non-destructive operation. The description adds that the response includes specific track fields and all clips, but does not describe error behavior or other operational 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted wording. The returned-field list is compact and useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only inspection tool with rich schema coverage and an output schema, the description is largely complete. The main remaining gap is sibling differentiation, which is better handled by usage guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the required track_type and track_index parameters are fully documented in the schema. The description does not add any parameter syntax, constraints, or semantics beyond restating that a specific track is targeted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: get detailed information about a specific track. It also enumerates the returned fields, making the operation concrete. However, it does not distinguish this tool from siblings such as list_sequence_tracks or get_sequence_structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives. It implies inspection of a single track, but does not mention exclusions, alternatives, or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_unused_mediaGet Unused MediaA
Read-onlyIdempotent

Find project items that are NOT used in any sequence. Useful for cleaning up projects. Results are paged (default 100 items) and can be filtered by a case-insensitive name substring; follow nextOffset while truncated is true.

NameRequiredDescriptionDefault
limitNoMaximum unused project items entries to return (1-500, default 100).
offsetNoZero-based index of the first unused project items entry to return (default 0). Pass the previous response's nextOffset to read the next page.
containsNoOptional case-insensitive substring matched against project item names before paging. Omit or pass an empty string to include every entry.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds useful behavioral detail beyond that: default page size of 100, case-insensitive substring filtering, and following nextOffset while truncated 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tight sentences. It front-loads the core purpose, then adds the cleanup use case and paging/filter mechanics with no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich annotations, a complete input schema, and an output schema, the description covers the key usage, filtering, and pagination behavior an agent needs. It does not explain the expected_cep_target or expected_project_path guard parameters, but those are documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents limit, offset, contains, and the guard parameters. The description reinforces paging and filtering semantics but adds little parameter meaning beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Find project items that are NOT used in any sequence.' It clearly implies the inverse of usage-reporting siblings, but does not explicitly name or contrast any sibling tool, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a use case ('Useful for cleaning up projects') and explains paging/filtering mechanics, but provides no explicit guidance on when to choose this tool over nearby alternatives such as get_used_media_report or find_item_usages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_used_media_reportGet Used Media ReportA
Read-onlyIdempotent

Get a report of all media files used in a sequence: which source files are used, how many times each appears, on which tracks, and whether any sources are offline.

NameRequiredDescriptionDefault
sequence_idNoSequence name or ID. Uses active sequence if omitted.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without prose. The description adds legitimate value by spelling out the report's contents (per-file usage counts, track placement, offline flags), but says nothing about result size, pagination, or failure behavior on an invalid/absent sequence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that gets to the payload immediately with a clean enumerated list; every clause maps to an actual output field. It is slightly long but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not explain return values, and what it does say is accurate and sufficient for a read-only reporting tool. The only shortfall is silence on the two optional guard parameters, which are non-obvious despite full schema documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 contributes no parameter-level meaning: the useful default ('Uses active sequence if omitted') lives in the schema, and the deeply nested expected_cep_target / expected_project_path guard objects are not mentioned at all in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get a report of all media files used in a sequence') and enumerates exactly what the report contains: source files, occurrence counts, tracks, and offline status. An agent can distinguish it from adjacent tools like get_unused_media or check_offline_media by the described payload, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'used in a sequence' implies the usage context, and the sequence-targeting is visible in the schema. However, there is no explicit when-to-use guidance, no note about which sibling to pick for offline-only checks (check_offline_media) or unused media (get_unused_media), and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_value_at_timeGet Value At TimeA
Read-onlyIdempotent

Get the interpolated value of an effect property at a time, in seconds from the clip's start

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
effect_nameYesDisplay name of the effect
time_secondsYesSeconds from the clip's start on the timeline (0 is the clip's first frame) to read the value at
property_nameYesDisplay name of the property
property_indexNoOptional property index from get_effect_properties; required when property_name is duplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral meaning by noting the value is *interpolated* (i.e., computed between keyframes) and that time is measured from the clip's start. It does not cover failure modes such as a missing effect/property or a duplicated property name in a way not already in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the core semantics (interpolated value, effect property, time basis) and zero filler. Nothing is redundant or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the nested guard parameters are fully self-documented. However, for a tool that only works after resolving an effect and property name (and possibly a property_index for duplicates), the description never mentions that prerequisite workflow, leaving a real gap for an agent that must chain calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter, including the nested expected_cep_target guard, is documented in-schema. The description only restates the time_seconds semantics ("in seconds from the clip's start"), adding no new syntax or resolution guidance beyond what the schema already says, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Get the interpolated value of an effect property") plus the time basis, which is far more precise than the bare title. It distinguishes itself from read-oriented siblings like get_keyframes or get_effect_properties by emphasizing the *interpolated* value at a point in time, though it does not name any sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: "interpolated value ... at a time" hints that this is for evaluating an animated property at an arbitrary timestamp rather than listing raw keyframes. There is no explicit when-to-use, no mention that effect_name/property_name should come from get_effect_properties, and no stated alternative such as get_keyframes for reading the underlying keyframe list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_version_infoGet Version InfoB
Read-onlyIdempotent

Get Premiere Pro version and build information.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond the purpose, and notably does not explain the optional CEP/project guard parameters. There is no contradiction with 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no waste. For a simple version-information tool, this is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has rich annotations, a full output schema, and 100% schema description coverage, so most context is already provided structurally. The description is nearly complete for a simple read tool, but it omits any explanation of the unusual optional guard parameters or diagnostic alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the detailed nested guard parameters are already documented in the schema. The description adds no parameter meaning at all. The baseline score of 3 is appropriate because the schema carries the parameter documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get Premiere Pro version and build information.' It is immediately clear what the tool returns. It does not distinguish itself from adjacent diagnostics such as get_premiere_state, get_capabilities, ping, or verify_premiere_connection, which keeps it below a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no when-to-use guidance, no exclusions, and no mention of alternative diagnostic tools. An agent can infer that this is for version/build checks, but nothing explicitly routes it against get_premiere_state or verify_premiere_connection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_areaGet Work AreaB
Read-onlyIdempotent

Get the current work area in and out points

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a safe, read-only, idempotent operation. The description adds that it returns work-area in and out points, but it does not mention behavior when the work area is disabled or how it interacts with the related is_work_area_enabled tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted language. It immediately states the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only getter with annotations and an output schema, the description is adequate. However, it does not mention the possibility that the work area is disabled or point to related tools, which would help an agent avoid misusing it in edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both optional guard parameters are fully documented in the schema. The description adds no parameter-level information, which is acceptable given the high schema coverage, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: get the current work area in/out points. It is clear what the tool retrieves, but it does not explicitly differentiate itself from nearby siblings such as get_sequence_in_out_points or is_work_area_enabled.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like get_sequence_in_out_points or is_work_area_enabled. The agent must infer usage from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_workspacesGet WorkspacesA
Read-onlyIdempotent

List all available workspace layouts in Premiere Pro

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description adds no further behavioral context, such as whether a live Premiere connection is required or how the two guard parameters affect execution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. It is appropriately sized for a simple read tool, though it is so brief that it leaves no room for the routing context a multi-hundred-sibling toolset would benefit from.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations carry the safety semantics. Combined with 100% schema coverage on the optional guard parameters, the definition is complete 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are optional guards fully documented in the schema, so the description need not compensate. It mentions neither expected_cep_target nor expected_project_path, so it adds nothing beyond the schema, but that is acceptable at this coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all available workspace layouts in Premiere Pro'), which an agent can cleanly separate from the sibling mutation tool set_workspace. It stops short of explicitly naming that sibling pair, but the read-vs-set distinction is unambiguous from the wording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent infers this is the discovery step to run before set_workspace. There is no explicit when-to-use, when-not-to-use, or named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_xmp_metadataGet Xmp MetadataA
Read-onlyIdempotent

Inspect bounded file/clip XMP fields with GPS, serials, author and contact data omitted by default. Raw XMP requires include_raw and include_sensitive true; it can disclose personal data to the connected client. Distinct from Premiere-private project metadata.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
include_rawNoOpt in to raw XMP instead of parsed fields (maximum 256 Ki characters). Requires include_sensitive true; default false.
include_sensitiveNoOpt in to GPS, serial, author and contact fields; required for raw XMP; default false.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnly/idempotent annotations, it discloses important behavior: GPS, serials, author, and contact data are omitted by default; raw XMP requires both include_raw and include_sensitive true; and raw XMP can disclose personal data to the connected client. This is exactly the kind of privacy and opt-in context annotations cannot provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose and security-sensitive behavior. Every sentence adds useful information with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete enough for a read-only inspection tool: output schema exists, parameter descriptions are rich, and the description covers the main privacy and opt-in constraints. It omits mention of the optional CEP/project-path guard parameters, but those are handled by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents parameters in detail. The description usefully reinforces the include_raw/include_sensitive dependency and default omission behavior, but it does not explain expected_cep_target or expected_project_path, so it adds only marginal parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Inspect bounded file/clip XMP fields." It also distinguishes the tool from "Premiere-private project metadata," which helps separate it from metadata-related siblings such as get_metadata and get_project_panel_metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context by focusing on file/clip XMP fields and contrasting them with Premiere-private project metadata. However, it does not explicitly state when to prefer this over get_metadata or other metadata siblings, nor does it give a full when-not rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

has_proxyHas ProxyC

Check if a project item has a proxy attached

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety and world scope (destructiveHint=false, openWorldHint=false), so the bar is lower, but the description adds nothing behavioral beyond the name. Critically, readOnlyHint=false on a tool whose name and description read as a pure query is left unexplained, and nothing is said about what the optional guards do or what a true/false result means.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words. It is arguably too terse given three parameters and nested guard objects, but there is no padding or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the rich schema covers parameters. Still, for a tool with nested CEP guard objects and a readOnlyHint=false annotation that pulls against the 'check' framing, the description should say at least whether this is a non-mutating inspection and how the optional guards affect behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including detailed prose on item_id, expected_cep_target, and expected_project_path, so the schema carries the semantics. The description neither names nor explains any parameter, so it adds no value here beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Check') and a specific resource/condition ('if a project item has a proxy attached'), which is unambiguous on its own. It does not, however, distinguish itself from nearby siblings such as detach_proxy, manage_proxies, or check_offline_media, so the agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use context, no prerequisite (e.g. an active project or selected item), and no mention of the alternatives in the 300+ sibling set that also deal with proxies or media state. The agent is left to infer that this is the pre-flight query before detach_proxy or manage_proxies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_ae_compsImport Ae CompsB

Import After Effects compositions from an .aep file, failing closed when the file does not exist or when the target bin gains no items.

NameRequiredDescriptionDefault
comp_namesNoArray of composition names to import. If omitted, imports all comps.
target_binNoTarget bin name or node ID (optional)
ae_project_pathYesFull path to the .aep file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds one genuinely non-obvious behavioral trait beyond the annotations: fail-closed semantics when the .aep is missing or the target bin gains no items. It does not say whether a partial import is rolled back, what happens if target_bin does not exist (create vs error), or where the imports land, so the mutation's blast radius is only partly disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero filler; the action is front-loaded and the failure clause is appended as the qualifier. Nothing repeats the tool name or the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema and 100% parameter coverage, the description need only convey the intent and the failure model, which it does. A short mention of where imported comps appear and whether missing bins are created would close the remaining gap for a project-mutating tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters (including comp_names, target_bin, idempotency_key, and the expected_* guards) are already documented in the schema. The description adds no meaning beyond that about default behavior for omitted comp_names or how target_bin resolution works, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (import After Effects compositions from an .aep file), which is clearly distinct from import_media/import_fcp_xml by format. It does not explicitly contrast with the near-neighbor import_mogrt or import_sequences, so an agent must infer the boundary from the file type alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives, nor of prerequisites such as After Effects being available or the project being open in a state that accepts new bins. Only failure conditions are given, which describes the unhappy path rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_edlImport EdlA

Unavailable by design: CMX 3600 EDL import opens Premiere UI that can block the CEP bridge. No import is attempted; convert the EDL to FCP7 XML and use import_fcp_xml for unattended interchange.

NameRequiredDescriptionDefault
file_pathYesAbsolute path to the CMX 3600 .edl file that was requested for import.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the failure mode that motivates the block (UI blocking the CEP bridge) and confirms no side effect occurs, adding real context beyond the annotations. It does not say whether the call returns a structured refusal/error or a replayed receipt, nor that the idempotency and expected_* parameters are accepted but unused, which leaves some ambiguity about the response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the unavailability and immediately followed by the remediation path. No filler; every clause carries unique information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the core question (does this import anything?) is answered definitively alongside the correct alternative. The remaining gap is that the description does not describe the tool's actual response shape or the interface-level error semantics, which an agent may need before calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters thoroughly, including the elaborate idempotency_key contract and the CEP identity guards. The description adds nothing about parameters, notably not clarifying that they are inert in a no-op tool; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise and unusual purpose: this tool is deliberately non-functional, and it explains the specific reason (CMX 3600 EDL import opens a Premiere UI that can block the CEP bridge). It flags itself apart from the other import_* siblings by routing to a specific named tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit when-not-to-use ('No import is attempted') and a concrete alternative path ('convert the EDL to FCP7 XML and use import_fcp_xml for unattended interchange'). An agent knows immediately to avoid this tool and which sibling to call instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_fcp_xmlImport Fcp XmlA

Import a Final Cut Pro XML file. Default mode new_project opens it as a new Premiere project: app.openFCPXML(path, projPath) requires a destination project path, and verified is true only when that destination exists as a file and Premiere has that exact path open. Mode into_open_project instead imports the XML into the currently open project with project.importFiles and succeeds only when the sequence count grew; the XML also brings its own clips, which can duplicate existing items, or Premiere can link them to existing items that point at the same media. That mode reports reusedItems (pre-existing project items and their bins that the new sequences use), so a later bin cleanup does not silently empty the new timelines.

NameRequiredDescriptionDefault
modeNonew_project (default) opens the XML as a new project saved at project_path. into_open_project imports it into the open project.
pathYesFull path to the FCP XML file to read
target_binNointo_open_project mode only: bin name or node ID to import into. Defaults to the project root.
project_pathNoFull path of the new .prproj file Premiere should create for the imported timeline. Required in new_project mode (app.openFCPXML takes both a source and a destination path); ignored in into_open_project mode.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say the call is a non-read-only, non-destructive mutation; the description goes far beyond that by naming the underlying host calls, the exact success predicate per mode (destination file exists and is open; sequence count grew), the duplication risk from XML-supplied clips, the possibility of relinking to existing items on the same media, and the meaning of reusedItems. That is precisely the contextual risk detail annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and default mode are front-loaded, and each subsequent clause carries distinct information about the second mode or its side effects. It is dense to the point of being hard to parse in one pass — the final sentence about reusedItems and bin cleanup is a long run-on — but nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation with nested guard objects and an output schema, the description covers the parts that matter most: both modes, their preconditions, and their failure/success signals. The expected_cep_target and expected_project_path guards and the idempotency_key semantics are left entirely to the schema, which is acceptable given their 100% coverage, but a single sentence on when to supply the guards would close the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description earns above baseline by explaining the mode-dependent contract for project_path (required for new_project, ignored otherwise) and by tying mode selection to observable success conditions. It says nothing about target_bin or the guard/idempotency parameters, which the schema alone must carry.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb and resource ("Import a Final Cut Pro XML file") and the rest splits that into two named, clearly described operation modes. It does not explicitly contrast itself with nearby siblings such as import_edl, import_sequences, or export_as_fcp_xml, so an agent still has to infer that this is the FCPXML-inbound path specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real selection criteria between the two modes: new_project is the default and needs a destination project path, while into_open_project is for bringing the XML into the currently open project. What is missing is any guidance on when neither mode is right (e.g., use inspect_fcpxml_interchange or verify_fcpxml_media_references first), which is exactly what an agent importing untrusted XML needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_folderImport FolderA

Import the media files directly inside a folder and read the destination tree back. Refuses an unreadable baseline before importing. Reports observed new media items; unreadable or unmatched imports are committed_unverified. Host errors retain partial-change diagnostics; inspect the destination before retrying.

NameRequiredDescriptionDefault
target_binNoOptional bin name or node ID to import into. Defaults to the project root.
folder_pathYesPath to the folder to import
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnly=false, destructive=false, idempotent=false; the description goes further by disclosing partial-application semantics ('host errors retain partial-change diagnostics'), the committed_unverified outcome class, and the refusal precondition. That surfaces mutation risk the annotations understate, though it never mentions auth/permission needs or scale limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the action and scope, then precondition, then outcome vocabulary, then retry advice. Dense but each sentence adds information; the term 'committed_unverified' is unexplained jargon, though it reads as an outcome token an agent can pattern-match.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating import with an output schema, the description covers the essential unknowns: scope of the folder scan, the refusal precondition, partial-failure outcome naming, and retry safety. Return values need not be explained because an output schema exists, and the target_bin default is documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so folder_path, target_bin, idempotency_key and the expected_* guards are already fully documented in the schema. The description's only added semantic is that the import covers files 'directly inside' the folder, i.e. non-recursive; baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Import the media files directly inside a folder') and the 'directly inside' phrasing usefully implies non-recursive scope. It does not explicitly name the nearest alternative (import_media for individual files, import_sequences, import_fcp_xml), so the agent must infer which import path applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear preconditions ('Refuses an unreadable baseline') and post-failure guidance ('inspect the destination before retrying'), which is genuinely actionable. However, it never states when to choose this over import_media or the other import_* siblings, leaving the main selection decision unaddressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_image_sequenceImport Image SequenceC

Import a numbered image sequence as a single video clip.

NameRequiredDescriptionDefault
target_binNoTarget bin name to import into (optional, imports to root if omitted)
first_file_pathYesFull path to the first image in the sequence (e.g., /path/to/frame_001.png)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it is a non-read-only, non-destructive, non-idempotent, closed-world mutation. The description adds none of the mutation-specific context an agent would want: that a new project item is created, whether numbering must be contiguous, how frame rate is inferred, whether an existing clip is overwritten, or how the idempotency_key interacts with a partial import failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the key concept front-loaded and no filler. It is arguably under-specified rather than over-long, which is more properly penalized in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool has 5 parameters, deep nested guard objects, and an output schema, so the structured fields carry a lot of weight. Still, the description omits the essential mechanic of an image-sequence import: how the sequence file pattern is derived from first_file_path and where the resulting clip lands. For a specialized import variant among many import siblings, that leaves real ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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; each parameter including the nested expected_cep_target guard is documented in the schema. The description adds no extra meaning, notably that first_file_path establishes the numbering pattern the sequence is built from.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

'Import a numbered image sequence as a single video clip' gives a specific verb (import), resource (image sequence), and a distinguishing outcome (single video clip), which separates it from import_media/import_folder. It doesn't name any sibling explicitly, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to choose this over import_media, import_folder, import_sequences, or import_edl, and no prerequisites or exclusions. The only cue is the phrase 'numbered image sequence', which implies but does not guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_mediaImport MediaB

Import media files into the project and confirm a new project item for each file

NameRequiredDescriptionDefault
file_pathsYesArray of file paths to import
target_binNoOptional bin name or node ID to import into. Imports to root if omitted.
suppress_uiNoSuppress import dialogs (default: true)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description only needs to add context. It does add one real trait: each imported file yields a new project item, i.e. additive rather than replacing. It says nothing about duplicate handling, UI suppression defaults, or the idempotency/dedup semantics implied by the idempotency_key parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. The phrase 'confirm a new project item for each file' is slightly awkward and could be tightened, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter mutation tool with nested guard objects, full schema coverage, and an output schema, the main missing piece is routing: which import tool to pick. Returns and parameters are covered elsewhere, but the sibling ambiguity (import_folder, import_image_sequence) is not resolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the guard parameters (expected_cep_target, expected_project_path, idempotency_key) are documented in exhaustive detail in the schema itself. The description adds no parameter meaning beyond that, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Import media files into the project') plus an outcome ('confirm a new project item for each file'). It does not distinguish itself from close siblings like import_folder, import_image_sequence, import_sequences, or import_fcp_xml, so an agent cannot tell which import path applies from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus the many sibling import tools (import_folder, import_image_sequence, import_edl, import_fcp_xml, import_sequences, preview_watched_media_import). No prerequisites or exclusions are stated; the agent must infer applicability from names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_mogrtImport MogrtA

Import a Motion Graphics Template (.mogrt) file and add it to the timeline. Pass text_values (for example { "Headline": "..." }) to write each text control explicitly after insertion and verify it by readback, so a template default or stale value is never left in place silently. Placement fields contain observed start/end/track values; requested values are separate, and unreadable geometry remains committed_unverified.

NameRequiredDescriptionDefault
mogrt_pathYesFull path to the .mogrt file
text_valuesNoOptional map of MOGRT text parameter display names to the exact text to write (for example { "Headline": "Chapter 3" }). Each value is written explicitly after import and read back; the result reports verified, mismatch, missing_property, or committed_unverified per field.
track_indexNoVideo track index (default: 0)
start_secondsNoStart time in seconds (default: 0)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoDuration in seconds (default: 5). Applied after import by moving the graphic's end and read back; a duration that would overlap the next clip on the track is not applied.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write/safety profile (readOnlyHint=false, destructiveHint=false), and the description adds real behavioral detail: text controls are written after insertion and verified by readback, duration is applied post-import and refused if it would overlap the next clip, and unreadable geometry is reported as committed_unverified. It omits what happens on partial failure of the import itself, but the verification outcome model is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then the highest-risk behavior (text override verification). The trailing sentence about placement fields is compressed to the point of being slightly cryptic, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with nested guard objects, an output schema, and full annotation coverage, the description covers the parts an agent most needs to reason about (text verification, duration application, unverified geometry). It leaves out missing-sequence preconditions and the relationship to import_mogrt_from_library, which is the main remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter including the idempotency_key contract is already documented in the schema. The description reinforces the text_values readback semantics and the observed-vs-requested placement distinction, but that latter point is about the result rather than the inputs, so it adds marginal value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — import a .mogrt file and add it to the timeline — so the action is unambiguous. It does not, however, distinguish itself from the close sibling import_mogrt_from_library or explain when a file-on-disk import is preferred over the library path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives conditional guidance for one parameter ('Pass text_values ... so a template default is never left in place silently') but never states prerequisites (active sequence required?) or when to choose this over import_mogrt_from_library or add_title. Usage 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.

import_mogrt_from_libraryImport Mogrt From LibraryA

Request importing a MOGRT from a named Adobe Creative Cloud Library. Library contents cannot be enumerated through CEP; host acceptance is committed_unverified, and rendered appearance must be checked in Premiere.

NameRequiredDescriptionDefault
mogrt_nameYesName of the MOGRT in the library
track_indexNoVideo track index (default: 0)
library_nameYesName of the Adobe Creative Cloud Library that contains the MOGRT
start_secondsNoStart time in seconds (default: 0)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses important operational caveats: library contents cannot be enumerated, host acceptance is committed_unverified, and rendered appearance must be checked in Premiere. This meaningfully clarifies the tool's uncertainty and verification burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with no wasted language. Purpose is front-loaded and the caveat follows immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex import with rich schema and output schema, the description covers the most important non-obvious behavior: CEP enumeration limits, unverified host acceptance, and required Premiere-side visual checking. It does not restate parameter or return-value details, which is appropriate here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameter details are already fully documented in the schema. The description adds only the notion of a named library and says nothing further about idempotency, target placement, or identity guards, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: importing a MOGRT from a named Adobe Creative Cloud Library. It is clearly distinct from local MOGRT import work, though it does not explicitly name sibling alternatives such as import_mogrt or inspect_mogrt_library.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when the MOGRT lives in a named CC Library and warns that library contents cannot be enumerated through CEP. However, it gives no explicit when-to-use/when-not guidance or alternative tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_sequencesImport SequencesC

Import sequences from another Premiere Pro project file

NameRequiredDescriptionDefault
project_pathYesFull path to the source .prproj file
sequence_idsYesNon-empty array of sequence IDs to import from the source project.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare a write operation (readOnlyHint=false, destructiveHint=false, idempotentHint=false), but the description discloses nothing beyond that — not where imported sequences land, whether the source project is opened/modified, whether media is relinked or copied, or how the idempotency_key interacts. With rich annotations present, the description still carries the burden of explaining effect, which it does not.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. However, it is so terse that the concision comes at the cost of missing context rather than being maximally efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters including nested guard objects, idempotency semantics, and an output schema. The description explains none of the guard behavior, idempotency contract, or outcome behavior, leaving the agent to infer everything from schema field text.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (project_path, sequence_ids, idempotency_key, expected_cep_target, expected_project_path) is already documented. The description adds no parameter meaning beyond the schema, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: imports sequences specifically from another Premiere Pro project file. This distinguishes it from import_media, import_fcp_xml, import_edl, and import_ae_comps by source format, though the description never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this over duplicate_sequence, import_fcp_xml, import_ae_comps, or import_edl. No prerequisites (e.g., source project must exist, target bin behavior) and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

insert_from_sourceInsert From SourceA

Insert the clip from the Source Monitor at the playhead (insert edit). Experimental: a target clip spanning the playhead is QE-razored before insertion to attempt to preserve its split tail. By default the tool also razors and shifts every QE sync-locked track, then reads the placement and target tails back; a displaced tail is reported as committed_unverified. Pass scope 'target_tracks' to ripple only the named pair (this will desync other tracks).

NameRequiredDescriptionDefault
scopeNoWhich tracks shift: 'sync_locked' (default) matches Premiere's insert and keeps sync-locked tracks in sync; 'target_tracks' ripples only the named pair and WILL desync other tracks.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
audio_track_indexNoTarget audio track index (default: 0)
video_track_indexNoTarget video track index (default: 0)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses a lot beyond the annotations: experimental status, QE-razor behavior on a clip spanning the playhead, razoring/shifting of all sync-locked tracks, a post-read verification step, and the 'committed_unverified' outcome when a tail is displaced. The desync warning on 'target_tracks' also surfaces a real side effect the structured hints do not express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action in the first sentence, then layers caveats and the scope alternative. The experimental/verification sentence is dense but each clause carries operational meaning; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the description still usefully notes that placement and target tails are read back, so the agent knows a verification outcome is returned. The optional CEP identity guards and idempotency posture are left entirely to the schema, which is acceptable but leaves a small gap for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents scope, idempotency_key, track indices and the expectation guards in detail. The description only restates the scope tradeoff and says nothing about track-index defaults or the reviewed-identity guards, so it adds little beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb+resource ('Insert the clip from the Source Monitor at the playhead') and parenthetically labels it '(insert edit)', which implicitly contrasts with overwrite_from_source. It does not explicitly name that sibling, so an agent must infer the distinction from editorial convention.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context (source clip at playhead) and explicit guidance on the scope choice, including the consequence of 'target_tracks' ('this will desync other tracks'). No explicit exclusion or named alternative tool such as overwrite_from_source.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_after_effects_render_templatesInspect After Effects Render TemplatesA
Read-onlyIdempotent

Read available render and output-module template names from the first existing After Effects render-queue item. It never queues or renders a composition.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so the safety profile is covered; the description usefully adds that only the FIRST existing render-queue item is inspected and that no composition is queued or rendered. What it does not disclose is what happens when the render queue is empty or has no templates — a real behavioral question for a 'first existing item' reader.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste; the read action and its scope come first, followed by the single most important constraint. Nothing is repeated from the title or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich annotations, an output schema, and fully documented parameters, the description covers what is read, where from, and that it is side-effect free. The remaining gap is edge-case behavior (empty render queue, no templates available), which an agent would want to know before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are optional and schema description coverage is 100%, including the nested expected_cep_target guard with detailed per-field descriptions, so the schema does the heavy lifting. The description adds nothing about the guard parameters, which is acceptable at full coverage but earns only the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read') and a specific resource ('available render and output-module template names') with an explicit scope ('from the first existing After Effects render-queue item'). The inspection-only framing clearly separates it from write-side siblings such as enqueue_after_effects_render and preview_after_effects_render.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence 'It never queues or renders a composition' gives a clear exclusion that routes the agent away from render/queue tools. It stops short of naming the alternative siblings (preview_after_effects_render, enqueue_after_effects_render) or stating prerequisites, so it is clear context rather than an explicit when/when-not pair.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_after_effects_template_sourceInspect After Effects Template SourceA
Read-onlyIdempotent

Inspect a saved After Effects source composition for MOGRT-relevant dimensions, duration, text fonts, layer-source kinds, and Essential Graphics controller names when the host exposes the AE 16.1+ readback API. It never creates a composition or returns asset paths.

NameRequiredDescriptionDefault
composition_nameNoOptional exact composition name; omit to inspect the active composition.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is clear. The description adds a real behavioral precondition (AE 16.1+ readback API) and negative guarantees (never creates a composition, never returns asset paths) that go 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the inspection scope and ending with concise exclusions. No redundant restatement of the title or schema, and every phrase contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value details need not be in the description, and annotations cover the safety profile. The description gives the API precondition and negative guarantees, but it does not explicitly route the agent among the many sibling inspection tools, leaving a small contextual gap for a complex nested schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters are optional with detailed descriptions, so the schema carries the semantic burden. The description does not mention composition_name, expected_cep_target, or expected_project_path or add usage nuance for them, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Inspect') and resource ('saved After Effects source composition') and lists the exact attributes it reports: dimensions, duration, text fonts, layer-source kinds, and Essential Graphics controller names. The exclusions ('never creates a composition or returns asset paths') help distinguish it from creation and asset-path tools, though no sibling tool is explicitly named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear precondition ('when the host exposes the AE 16.1+ readback API') and clear exclusions ('never creates a composition or returns asset paths'). However, it does not name an alternative sibling such as inspect_after_effects_render_templates, so it falls short of full when/when-not/alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_cmx3600_edlInspect Cmx3600 EdlA
Read-onlyIdempotent

Parse a local CMX 3600 EDL into bounded event, reel, track, transition, and timecode facts without importing it into Premiere.

NameRequiredDescriptionDefault
pathYesExisting local .edl file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true and openWorldHint=false, so safety is covered. The description adds real context beyond that: it operates on a local file and does not touch the Premiere host, and it enumerates the fact families returned. The unexplained term 'bounded' is the only soft spot.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, verb-first and front-loaded, with no filler. Every clause (local scope, fact categories, no-import constraint) carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no prose. For a one-required-parameter read-only parser whose safety profile is fully annotated, the description supplies everything needed to call it correctly: what it reads, what it produces, and that it stays off the Premiere host.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 adds nothing about parameters. Notably it gives no hint that expected_cep_target and expected_project_path are CEP guards irrelevant to a local-only parse and should be omitted, which is the one ambiguity worth addressing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Parse') plus specific resource ('local CMX 3600 EDL') plus the extracted fact categories (event, reel, track, transition, timecode). The phrase 'without importing it into Premiere' separates it from import_edl, though it never names its closest siblings validate_cmx3600_edl and compare_cmx3600_edls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Without importing it into Premiere' implies the read-only inspection use case before an import, but there is no explicit when-to-use statement and no named alternative. An agent facing validate_cmx3600_edl, compare_cmx3600_edls and import_edl has to infer the routing itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_dom_objectInspect Dom ObjectA
Read-onlyIdempotent

Inspect a Premiere Pro DOM object and list its properties, methods, and values. Useful for exploring the API and debugging. object_path must be a property path starting with app or qe (identifiers and numeric indexes only). Function calls, operators, and statements are rejected; use evaluate_expression with unsafe-script for those.

Examples:

  • "app.project" → project properties

  • "app.project.activeSequence" → sequence properties

  • "app.project.activeSequence.videoTracks[0].clips[0]" → first clip on V1

  • "app.project.activeSequence.videoTracks[0].clips[0].components[0]" → first component of a clip

NameRequiredDescriptionDefault
max_depthNoMax depth for nested inspection (default: 1, max: 3)
object_pathYesProperty path starting with app or qe (e.g. 'app.project.activeSequence.videoTracks[0]'). Function calls and statements are rejected.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description still adds real behavioral detail beyond them: the input is validated and rejected unless it is a property path rooted at app or qe, and mentions max depth. It omits any note on cost or size of the returned tree, but that is a minor gap given 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the definition in sentence one, then the path constraint, then the escape hatch, then examples. Every element earns its place and the example list is the most efficient way to convey the path grammar.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the read-only nature is annotated. What is missing is any mention of the expected_cep_target / expected_project_path guard parameters, which are complex nested objects an agent may otherwise overlook when calling this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description earns above that by adding syntax rules the schema only partly states: paths must start with app or qe, identifiers and numeric indexes only, function calls rejected, plus four concrete path examples. max_depth and the two expected_* guard parameters are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb and resource ('Inspect a Premiere Pro DOM object') and enumerates the returned content (properties, methods, values), which separates it from the typed getter siblings like get_clip_properties or get_full_sequence_info. It does not name those siblings, so differentiation is by implication rather than explicit comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the situation where this is the right call ('exploring the API and debugging') and gives an explicit exclusion plus redirect: function calls, operators and statements are rejected, and evaluate_expression with unsafe-script should be used instead. That is strong when/when-not guidance, though it never frames when a structured getter is preferable to raw DOM inspection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_edit_readinessInspect Edit ReadinessA
Read-onlyIdempotent

Audit the active sequence in one read-only bridge request for empty timelines, primary-track gaps, disabled clips, muted tracks, and excessive Motion scale. Structural diagnostics only; it cannot judge story, framing, sound, or final delivery.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
primary_video_trackNoVideo track used for gap inspection (default: 0)
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
gap_tolerance_secondsNoIgnore smaller gaps caused by time rounding (default: 0.001)
maximum_scale_percentNoWarn above this Motion scale percentage (default: 110)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered; the description adds value by disclosing that the entire audit runs in a single bridge request (round-trip cost) and by enumerating the concrete failure classes it reports. It does not mention that the optional CEP identity guard can cause a refusal, which matters behaviorally, though the schema documents that at length.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and the audit scope, then the limitation. No filler and nothing that repeats the schema verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description only needs to convey scope and limits, and the enumeration of five diagnostic categories plus the structural-only caveat does that. The one gap is the absence of any signal that it operates on the active sequence with no required inputs and can decline on identity mismatch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 and the schema already explains primary_video_track, gap_tolerance_seconds, maximum_scale_percent, and the expected_cep_target guard. The description only implicitly maps its checks to those knobs ('primary-track gaps', 'excessive Motion scale') without adding thresholds, defaults, or units.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (audit) and resource (the active sequence) and enumerates the exact checks: empty timelines, primary-track gaps, disabled clips, muted tracks, excessive Motion scale. It does not name or contrast with the closest sibling, audit_timeline_health (nor get_timeline_gaps / inspect_sequence_review_report), so the boundary between this and other audit tools is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The negative scoping ('structural diagnostics only; cannot judge story, framing, sound, or final delivery') tells an agent when the results stop being trustworthy, which is useful. But there is no explicit guidance on when to call this instead of audit_timeline_health, get_timeline_gaps, or validate_project_for_export, nor any stated prerequisites (e.g. an active sequence must exist).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_fcpxml_interchangeInspect Fcpxml InterchangeA
Read-onlyIdempotent

Inspect a local FCPXML or FCP7 XML (xmeml, what Premiere's export_as_fcp_xml writes) document: format, version, sequence/clip counts, bounded media declarations, and text-only parser warnings, before deliberate Premiere import.

NameRequiredDescriptionDefault
pathYesExisting local .fcpxml or .xml file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description still adds useful traits: it operates on a local file, emits 'text-only parser warnings' (implying no media decoding or Premiere involvement), and only reports 'bounded media declarations' rather than validating them. It does not spell out limit cases such as malformed XML or unsupported versions, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence: verb, resource, parenthetical format clarification, enumerated outputs, then the pre-import purpose. Every clause carries information and nothing is repeated from schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, yet the description still summarizes them, and it makes clear this is a local, read-only parse. The only gap is failure/limit behavior (malformed XML, unsupported FCPXML versions, file size), which an agent might need to call it correctly under error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents path, idempotency_key, and the CEP guard objects; the description only implies the path parameter via 'local ... document'. Nothing is added about parameter meaning beyond that, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (inspect) and a specific resource (local FCPXML/FCP7 xmeml document), and enumerates the reported facets (format, version, sequence/clip counts, media declarations, parser warnings). It also distinguishes itself from neighbors by naming the sibling that produces such files (export_as_fcp_xml), so an agent can tell it apart from import_fcp_xml and verify_fcpxml_media_references.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The trailing clause 'before deliberate Premiere import' gives clear usage context: it is a pre-flight check, not an importer. It does not explicitly exclude adjacent tools (e.g., use inspect_cmx3600_edl for EDLs, verify_fcpxml_media_references to resolve media), so it stops short of full when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_film_editorial_workflowInspect Film Editorial WorkflowA
Read-onlyIdempotent

Validate a revision-bound film editorial manifest against captured source and timeline identities. Build complete declared coverage review groups, independent picture/audio preferences, screening-note exceptions, story dependencies, VFX state, change impact and a department turnover manifest. Local inspection only: no host edits, exports, automatic creative decisions or verified host claims.

NameRequiredDescriptionDefault
vfxYesIndependent creative and delivery states; reconciled deliveries require a receipt.
notesYesVersion-bound screening notes. Stale notes remain unresolved; frames are never guessed onto a new cut.
scenesYesExpected script scenes, including those without coverage.
profileYesCustom review preferences; overlap is a review-only source handle in each source timebase.
sourcesYesDeclared source inventory tied to captured source evidence; technical values require host verification.
viewingYesExplicit output viewing profile; rendered-output checks remain required.
coverageYesMany-to-many source-range to scene graph. Preferences never remove unselected coverage.
previousNoOptional previously saved occurrence snapshot for change impact. Caller supplied, not an authenticated host receipt.
turnoverYesRequested turnover settings; handles use each source timebase. This tool creates a manifest, never an export.
project_idYesCaptured project-context ID.
storyCardsYesReorderable story fragments and explicit dependency graph.
occurrencesYesExplicit source/timeline occurrences, separate from source coverage; retimes block automatic handoff.
script_revisionYesHuman-supplied script revision for scene and line identities.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_source_revisionYesExact captured source revision.
expected_context_revisionYesExact captured context revision; stale requests fail.
expected_timeline_revisionYesExact captured timeline revision.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds genuine behavior: no automatic creative decisions (ranking stays human) and no verified host claims (caller-supplied data is untrusted), which explains why validation rather than mutation is the outcome. It does not discuss failure modes for stale revisions, though the schema covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core verb and validated resource, then artifacts, then scope limits. The artifact sentence is a dense noun list that is heavy to parse but every element maps to a required parameter cluster, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter (15 required), deeply nested tool with an output schema and full annotation coverage, the description supplies the two things structured fields cannot: the overall purpose (revision-bound validation) and the negative scope (no host edits, exports, or auto-decisions). Ordering/error semantics are left to the schema, which is acceptable given the output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested objects carry rich inline documentation (timebase fractions, inclusive/exclusive frames, human ranks, receipt requirements), so the baseline is 3. The description's noun list gestures at the domain objects (coverage, picture/audio, notes, storyCards, vfx, turnover, change impact via previous) but adds no syntax, constraints, or required-vs-optional guidance beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Validate a revision-bound film editorial manifest against captured source and timeline identities', plus the derived artifacts it builds (coverage groups, picture/audio preferences, notes, story dependencies, VFX state, turnover manifest). An agent can tell this is a local validation/analysis tool, not an edit tool, though it never names a sibling (e.g. build_project_handoff_manifest, inspect_sequence_review_report) to contrast with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Revision-bound' implies the call requires captured context/source/timeline revisions, and 'Local inspection only: no host edits, exports' implicitly routes mutation intent elsewhere. But there is no explicit when-to-use/when-not statement or named alternative among the many sibling inspection and manifest tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_interchange_artifactInspect Interchange ArtifactA
Read-onlyIdempotent

Read caller-selected artifact bytes, hash them and identify actual OTIO/FCP7 xmeml/FCPXML/EDL structure. AAF/OMF are bounded opaque-byte evidence only. File existence, parsed structure, round-trip and licensed-host/destination evidence remain distinct.

NameRequiredDescriptionDefault
pathYesAbsolute caller-selected local file path. Referenced media is never opened automatically.
formatNoRequested format; XML root bytes distinguish FCP7 xmeml from FCPXML. AAF/OMF semantic parsing is unavailable.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, non-destructive, idempotent, closed-world), so the bar is lower, yet the description still adds real context: it hashes bytes, only recognises structure rather than attesting existence, and flags that round-trip and licensed-host/destination evidence are separate concerns. That prevents an agent from over-reading the result as a validity guarantee. It stops short of saying referenced media is never opened or that missing files error out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two to three short sentences, front-loaded with the verb and resource, with no repetition of the title. The wording is dense with internal jargon ('bounded opaque-byte evidence', 'remain distinct') that costs some clarity, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and all five parameters are fully described in the schema. What is missing is the selection rationale among the many inspection siblings and whether the target file must already exist, but for a read-only single-path tool the description is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so path, format and the CEP guard objects are already fully documented in the schema and the baseline is 3. The description adds only the notion of 'caller-selected artifact bytes' and does not explain how the format parameter interacts with byte-level sniffing beyond what the schema's enum descriptions already say.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names specific verbs (read, hash, identify) and a specific resource (caller-selected interchange artifact), and enumerates the formats it can structurally parse versus the ones it cannot (AAF/OMF). It is clear what the tool does, but it never distinguishes itself from the format-specific siblings (inspect_otio_interchange, inspect_fcpxml_interchange, inspect_cmx3600_edl, inspect_interchange_loss_report), so an agent cannot tell when this general tool beats those.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'AAF/OMF are bounded opaque-byte evidence only' sets a capability boundary, and the final sentence implies the tool does not establish file existence or round-trip validity. There is no explicit 'use this when…' or 'prefer X instead' statement despite five similarly-named inspection siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_interchange_loss_reportInspect Interchange Loss ReportB
Read-onlyIdempotent

Build per-feature inspected/approximated/dropped/unknown loss evidence for OTIO, FCP7 XML, FCPXML, CMX EDL, AAF or OMF. Optional artifact inspection identifies its actual root. Source inventory is caller evidence; this never infers destination acceptance from exporter success.

NameRequiredDescriptionDefault
pathNoAbsolute caller-selected local file path. Referenced media is never opened automatically.
formatYesRequested format; XML root bytes distinguish FCP7 xmeml from FCPXML. AAF/OMF semantic parsing is unavailable.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
source_featuresNoOptional bounded source occurrence counts
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description still earns credit for real behavioral content beyond that: the four-way loss classification, the fact that it inspects the artifact root rather than trusting the caller-declared format, and the explicit refusal to infer destination acceptance from exporter success. It omits any statement of return shape or scope limits, but the output schema carries that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the deliverable and then the epistemics. Dense slash-separated jargon ('inspected/approximated/dropped/unknown') packs a lot into few words, though it costs some immediate readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only analysis tool with annotations, a 100%-documented 6-parameter schema and an output schema, the description covers the essential unknowns: what is produced, which formats, and what the tool refuses to conclude. The main remaining gap is routing relative to the other interchange inspectors, and the AAF/OMF parsing limitation lives only in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with rich per-field documentation (including the AAF/OMF parsing limitation on 'format' and the bounds on source_features counts), so the schema does the heavy lifting. The description adds only a light gloss on the source_features evidence model and the artifact-root inspection implied by 'path'; nothing is added about expected_cep_target or expected_project_path, which are large and complex objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and output artifact ('Build per-feature inspected/approximated/dropped/unknown loss evidence') and enumerates the six interchange formats it covers, which is far more specific than the name alone. However, it never distinguishes itself from the many adjacent siblings (inspect_interchange_artifact, inspect_otio_interchange, inspect_fcpxml_interchange, inspect_cmx3600_edl), so an agent cannot route confidently between them from this text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit statement of when to choose this tool over the sibling inspectors, nor any prerequisite or exclusion (e.g. 'use before export to audit loss', 'for AAF/OMF semantic parsing use X'). The line 'Source inventory is caller evidence' hints at a workflow but is a behavioral caveat rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_media_streamsInspect Media StreamsA
Read-onlyIdempotent

Inspect a local media file with ffprobe and return container, stream, codec, time-base, channel, and chapter metadata. Read-only and independent of Premiere.

NameRequiredDescriptionDefault
use_cacheNoOpt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.
media_pathYesExisting local media file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
analysis_revisionNoOptional project/timeline revision to isolate otherwise-identical analysis inputs.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered elsewhere. The description usefully adds that inspection runs via ffprobe and needs no host connection, but it does not mention performance behavior on large files, failure modes for unsupported/corrupt media, or the caching tradeoff described only in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the verb and resource, followed by the output inventory and the key differentiator. Nothing is repeated or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter documentation, the description only needs to set scope, which it does. The remaining gap is operational: no mention that ffprobe must be available or how the tool behaves on unreadable/non-media paths, which matters for a local-tooling call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented, including the use_cache 256 MiB cutoff and the idempotency_key no-dedup note for read-only calls. The description adds nothing parameter-specific beyond the required media_path, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (inspect) plus resource (a local media file) and names the exact metadata returned: container, stream, codec, time-base, channel, chapters. The clause 'independent of Premiere' distinguishes it from project-bound siblings like get_full_clip_info or inspect_project_item_av_metadata, which operate on Premiere items rather than bare files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Local media file' plus 'independent of Premiere' tells an agent when to reach for this tool: pre-import or non-Premiere inspection of a file on disk. There is no explicit exclusion clause (e.g. 'use get_full_clip_info for an already-imported clip') and no stated ffprobe prerequisite, so it falls short of a full when/when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_mogrt_libraryInspect Mogrt LibraryA
Read-onlyIdempotent

List bounded top-level template names and version directories in an existing workspace-contained local MOGRT library. It never reads MOGRT contents or changes the library.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
library_directoryYesExisting workspace-contained local library root.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathYesAbsolute operator-approved workspace root.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds meaningful behavioral context: it only lists top-level names/version directories and never reads MOGRT contents, though it does not discuss permissions or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and immediately followed by the key boundary condition. There is no wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only local inspection tool with full schema coverage, annotations, and an output schema, the description covers the essential purpose and boundaries. It does not explain the optional CEP/project guard parameters or what 'bounded' specifically means, but those details are handled in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and all five parameters, including the nested CEP/project guard objects, are documented in the schema. The description adds only the 'workspace-contained local library' context and no parameter-specific semantics beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses the specific verb 'List' and defines an exact scope: bounded top-level template names and version directories in a local MOGRT library. 'Never reads MOGRT contents or changes the library' separates it from content-reading and mutation siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for listing top-level library entries and explicitly excludes reading contents or changing the library. However, it does not name alternatives such as import_mogrt_from_library or publish_mogrt_to_library, so routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_operation_recoveryInspect Operation RecoveryA
Read-onlyIdempotent

Inspect unknown execution outcomes and a bounded current host-state revision. Inspection remains available while dependent mutations are blocked. No edit is replayed.

NameRequiredDescriptionDefault
backendYesExecution backend whose uncertain operations should be inspected.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, idempotent, non-destructive safety profile, and the description adds useful recovery-specific behavior: inspection is available while dependent mutations are blocked and no edit is replayed. It does not explain authentication, pagination, or output shape, but the output schema likely covers 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core purpose and followed by the key recovery constraint and replay guarantee. There is little or no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description supplies enough purpose and safety context for a read-only recovery inspection tool, especially given rich annotations, full schema descriptions, and an output schema. It could be slightly clearer about the relationship to recovery acknowledgement or operation-history siblings, but the essential calling context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents backend, expected_cep_target, and expected_project_path in detail. The description adds no parameter-specific meaning beyond the schema, which fits the baseline of 3 when the schema carries parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: inspect unknown execution outcomes and a bounded current host-state revision. It clearly frames the tool as recovery inspection, though it does not explicitly distinguish it from nearby siblings such as get_last_operations or acknowledge_operation_recovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states that inspection remains available while dependent mutations are blocked, which gives clear recovery-context guidance for when to use it. It does not name alternatives or explicit exclusions, so it stops short of the highest usage-guidance level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_otio_interchangeInspect Otio InterchangeA
Read-onlyIdempotent

Parse a bounded local OTIO Timeline.1 into exact-tick offline tracks/clips/gaps/transitions. Reports missing media, opaque nests/effects/metadata and unsupported timing. Synthetic IDs never authorize Premiere writes; this tool never imports a project.

NameRequiredDescriptionDefault
pathYesAbsolute caller-selected local file path. Referenced media is never opened automatically.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description's added value is real: it discloses that the parse reports missing media, opaque nests/effects/metadata and unsupported timing, and that it never imports a project or opens referenced media. That's meaningful context beyond the structured hints, though pagination/output shape detail is absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the core verb/resource and output structure, ending with the critical safety boundary ('never imports a project'). Minimal waste; slight jargon ('Timeline.1') costs a bit of immediacy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and annotations cover the safety profile, the description is nearly complete for a read-only inspection tool: it says what is parsed, what is reported, and what is never done. The one gap is explicit when-to-use routing against the many interchange siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with detailed nested descriptions for path, idempotency_key, and the CEP guard objects, so the schema does the heavy lifting. The description only loosely implies the 'bounded local' path constraint and adds no parameter-specific meaning (e.g., how expected_cep_target relates to an OTIO parse).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Parse) and resource (a bounded local OTIO Timeline.1) and enumerates what it produces (tracks/clips/gaps/transitions in exact ticks). It distinguishes itself from CEP-mutating siblings by emphasizing offline/local parsing, though it never names a specific alternative tool like inspect_fcpxml_interchange or inspect_interchange_artifact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through scoping language ('bounded local', 'never imports a project', synthetic IDs never authorize writes). There is no explicit 'use when you have an OTIO file to vet before import' guidance, nor a direct comparison to the many sibling interchange-inspection tools, leaving the agent to infer selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_project_item_av_metadataInspect Project Item Av MetadataB
Read-onlyIdempotent

Inspect a project item's documented effective/original color space, LUT IDs, available color-space overrides, and audio channel shape.

NameRequiredDescriptionDefault
item_idYesProject item node ID or exact name
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is well covered. The description adds useful content detail about what is inspected, but does not disclose any behavioral traits beyond the annotations, such as guard behavior or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. It immediately names the verb and resource, then lists the inspected attributes in a compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is read-only with full schema coverage, annotations, and an output schema, so the description needn't explain return values or safety. It sufficiently covers what is inspected, though it omits any mention of the optional identity guards or how this differs from adjacent inspection tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents item_id, expected_cep_target, and expected_project_path. The description does not add meaning or usage guidance for any parameter beyond what the schema provides, which is acceptable given full coverage but not additive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Inspect') and resource ('a project item's ... metadata'), then enumerates the exact fields returned: effective/original color space, LUT IDs, overrides, and audio channel shape. It is clear what the tool does, but it does not distinguish itself from overlapping siblings such as get_color_space, get_clip_properties, or inspect_sequence_av_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit when-to-use, when-not-to-use, or alternative-tool guidance. With a dense sibling set of inspection tools, an agent must infer from the field list alone that this is the right choice for project-item AV metadata rather than color space or clip properties.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_project_recoveryInspect Project RecoveryA
Read-onlyIdempotent

Read-only recovery inspection: diagnose the active project path and list adjacent Premiere Auto-Save project candidates without opening, copying, or restoring anything.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false, idempotentHint, and closed-world; the description adds real value on top by stating that nothing is opened, copied, or restored, and by scoping the output to the active path plus adjacent Auto-Save candidates. It does not describe the guard behavior of the two optional parameters, though the schema covers that in detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the read-only framing followed by the two concrete actions and the explicit non-actions. Zero filler; every clause carries weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, rich annotations, and 100% schema coverage, the description only needs to convey purpose and safe scope, which it does. A hint about when a recovery inspection is the right call (e.g. after a crash or failed project open) would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two optional parameters (expected_project_path, expected_cep_target) are fully documented in the schema, including the CEP-only guard behavior. The description adds no parameter-level meaning beyond that, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names specific verbs and resources: diagnose the active project path and list adjacent Premiere Auto-Save candidates. That is far more concrete than the sibling inspection tools (audit_project_structure, inspect_operation_recovery), but it never explicitly distinguishes itself from them or from open_project/get_all_project_paths.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'read-only recovery inspection' and 'without opening, copying, or restoring anything' clearly frame the scenario (recovery triage) and rule out restoration/open workflows. It stops short of naming an explicit alternative tool for the case where the agent actually wants to restore or open a project.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_rendered_video_scopesInspect Rendered Video ScopesA
Read-onlyIdempotent

Sample a caller-owned exported video using existing decoded RGB scopes and declare range/transfer/primaries evidence. Refuses HDR legal-range claims from an 8-bit RGB proxy; does not prove Premiere render lineage.

NameRequiredDescriptionDefault
color_rangeNoCaller-declared encoded range; validated metadata is separate.
output_pathYesExisting rendered video to sample.
time_secondsNoOutput-relative sample time, default zero.
color_transferNoCaller-declared transfer function (PQ/HLG remain unsupported for legal-range conclusions).
color_primariesNoCaller-declared primaries.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds meaningful behavioral limits beyond those annotations, specifically that HDR legal-range conclusions are refused from an 8-bit RGB proxy and that lineage is not proven.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the sampling purpose, and uses the second sentence for the key exclusions. There is no filler or redundant repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema and output schema are rich, so the description need not explain return values or every nested guard parameter. It covers the core operation and critical limitations, but it does not orient the caller to the complex expected_cep_target/expected_project_path guard behavior beyond what the schema already says.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented in the schema. The description echoes the color range/transfer/primaries evidence concept but does not add syntax, constraints, or usage detail beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: sample a caller-owned exported video using existing decoded RGB scopes, and declare range/transfer/primaries evidence. That is clear and scope-specific, but it does not explicitly distinguish this from sibling tools such as read_video_scopes or analyze_video_qc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives useful exclusions, saying it refuses HDR legal-range claims from an 8-bit RGB proxy and does not prove Premiere render lineage. However, it does not say when to choose this tool instead of siblings like read_video_scopes, analyze_video_qc, or verify_delivery_conformance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_sequence_av_settingsInspect Sequence Av SettingsA
Read-onlyIdempotent

Inspect documented audio, tone-mapping, linear-compositing, bit-depth, render-quality, and display settings for the active sequence.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish that this is a read-only, idempotent, non-destructive inspection. The description adds a small amount of context by scoping results to 'documented' AV settings for the active sequence, but it does not disclose additional behavioral traits beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted wording, and it leads with the verb and the primary settings categories.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only inspection tool with annotations covering safety, a fully described schema, and an output schema, the description is largely complete: it states the target (active sequence) and the inspected setting domains. It could be slightly stronger by clarifying how this differs from broader sequence-settings tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage for both optional parameters, including nested identity and path guard details. The description does not mention either parameter, so the schema does the necessary work, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (Inspect) and resource (sequence AV settings), and enumerates relevant setting categories: audio, tone-mapping, linear-compositing, bit-depth, render-quality, and display. It is clear but does not explicitly differentiate this tool from siblings like get_sequence_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by saying it inspects settings for the active sequence, but it provides no explicit when-to-use guidance, no exclusions, and no alternatives such as get_sequence_settings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_sequence_review_reportInspect Sequence Review ReportA
Read-onlyIdempotent

Build one read-only sequence handoff report with timeline structure, primary-track gaps, disabled clips, muted tracks, marker timing, and offline-source evidence. Media paths are never returned; marker comments require an explicit opt-in. It does not prove rendered pixels, audio quality, caption correctness, rights, or editorial approval.

NameRequiredDescriptionDefault
max_markersNoMaximum marker entries to return from the start of the sequence (default: 50, maximum: 200).
sequence_idNoSequence name or ID. Uses the active sequence if omitted.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
primary_video_trackNoVideo track used for gap inspection (default: 0).
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
include_marker_commentsNoInclude marker comments. Defaults to false because comments can contain private editorial notes.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, and the description adds genuinely new behavioral facts on top: media paths are never returned, marker comments are suppressed by default because they can contain private editorial notes, and the report makes no claim about rendered output or approval status. These are non-obvious privacy and evidentiary guarantees an agent could not derive from the schema or annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with what gets built and what it contains, then the privacy constraint, then the negative guarantees. Every clause carries information; there is no filler or restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering the safety profile and an output schema covering return shape, the description's remaining burden is scope and trust boundary, which it handles thoroughly: a full contents list plus an explicit list of what the report does not certify. An agent knows whether to reach for it and what it may conclude from the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters including max_markers defaults and the CEP guard semantics, which sets the baseline at 3. The description corroborates a few of them — primary-track gap inspection and the opt-in nature of marker comments — but adds no format, default, or interaction detail beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ("Build one read-only sequence handoff report") and enumerates exactly what the report contains: timeline structure, primary-track gaps, disabled clips, muted tracks, marker timing, offline-source evidence. That is far more than a restatement of the name, but it never distinguishes this from nearby siblings such as get_full_sequence_info, get_timeline_summary, or audit_timeline_health, leaving the agent to infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence gives explicit scope exclusions — it does not prove rendered pixels, audio quality, caption correctness, rights, or editorial approval — which tells the agent when this report is not sufficient evidence. It also states that marker comments need an explicit opt-in, implying a privacy-driven decision point. However, no alternative tool is ever named for the cases this report does not cover.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_stabilizer_statusInspect Stabilizer StatusA
Read-onlyIdempotent

Read Warp Stabilizer presence, exposed status properties, and conservative analysis state for one clip or every video clip in the active sequence. Read-only: unknown or localized host values remain unknown rather than being reported as solved.

NameRequiredDescriptionDefault
node_idNoOptional clip node ID. Omit to inspect every video clip in the active sequence.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The read-only nature is already declared by readOnlyHint/idempotentHint/destructiveHint=false, so restating it earns little. The genuinely additive part is the conservative-reporting contract: unknown or localized host values stay 'unknown' instead of being reported as solved, which tells the agent to trust absence of data rather than infer success. That single clause is useful but thin for a tool whose annotations already carry the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and scope, followed by the behavioral caveat. No filler, though the 'Read-only:' lead-in duplicates the annotation and could have been spent on the guard-parameter semantics instead.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shapes need not be described, and all three parameters are schema-documented, including nested guards. What remains missing is the failure/absence contract (what it reports when a clip has no Warp Stabilizer) and when to prefer stabilize_clip; given the read-only annotations and full schema, these are modest gaps rather than blocking ones.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id, expected_cep_target, and expected_project_path are fully documented in the schema. The description only echoes node_id's clip-vs-sequence behavior and says nothing about the two guard parameters (identity preconditions that make the call refuse on mismatch), so it adds no meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (Read) plus specific resource (Warp Stabilizer presence, status properties, analysis state) and explicit scope (one clip via node_id or the whole active sequence). The pairing of 'inspect' with a stabilizer-specific resource cleanly separates it from action siblings like stabilize_clip or generic effect readers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'one clip or every video clip' phrase guides input scope, implicitly suggesting a verify-after-stabilize workflow, but no alternative tool is named and there is no when-not guidance (e.g., use stabilize_clip to apply, get_effect_properties for non-stabilizer effects). Usage is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_timeline_snapshotInspect Timeline SnapshotA
Read-onlyIdempotent

Inspect one exact CEP sequence into version1 canonical snapshot preserving raw tick strings, source/link identities, bounded clips and explicit unknown fields. Track targeted/muted come from the documented track DOM; sync_locked comes from the experimental QE DOM only when this is the active sequence and stays null otherwise. Host missing lock/effect/transition/marker state remains incomplete; this inspection never implies atomic host state. Re-query from zero after change or truncation.

NameRequiredDescriptionDefault
max_clipsNoBounded returned clips, default1000. Missing tail is explicitly incomplete.
sequence_idYesExact host sequence ID; names are rejected.
expected_revisionNoOptional exact revision; changed state requires restart.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral context beyond them: sync_locked is null unless this is the active sequence, host lock/effect/transition/marker state may be incomplete, and the inspection never implies atomic host state. This precisely frames the reliability caveats an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then caveats, with little waste. Jargon ('version1 canonical snapshot', 'documented track DOM') is dense but each sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and it adequately covers the completeness/re-query caveats and DOM-source distinctions. Complete enough for correct invocation, though a pointer to sibling alternatives would close the last gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters thoroughly. The description adds little parameter-specific meaning (mostly output/behavior semantics like bounded clips and unknown fields), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Inspect one exact CEP sequence into version1 canonical snapshot') with scope qualifiers (raw tick strings, source/link identities, bounded clips, explicit unknown fields). An agent can tell this produces a canonical snapshot of one sequence. However, it never differentiates from close siblings like get_full_sequence_info or diff_sequence_snapshots, so the agent must infer which one to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is operational guidance ('Re-query from zero after change or truncation') that implies usage after mutations, but no explicit when-to-use or when-to-use-alternatives statement versus the many sibling inspection tools. Usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_workflow_checkpointInspect Workflow CheckpointA
Read-onlyIdempotent

Read one private saved workflow checkpoint after restart. Unsupported versions reject; pending and unknown operations require reconciliation. Loading never dispatches mutations or restores projects.

NameRequiredDescriptionDefault
checkpoint_idYesID returned by save_workflow_checkpoint.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses genuine behavioral traits: unsupported versions reject, pending and unknown operations require reconciliation, and loading never dispatches mutations or restores projects. That last line is valuable safety context an agent could not infer from annotations alone. It stops short of naming the rejection/reconciliation error signals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the action stated first and the safety guarantee loaded at the end. The middle sentence is telegraphic ('pending and unknown operations require reconciliation') but is still tight and useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers the non-obvious traps (version rejection, reconciliation, no mutation/restore side effects). It could be more complete by naming the tool used to resolve a reconciliation state, but nothing needed 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so checkpoint_id, idempotency_key, expected_cep_target and expected_project_path are already fully documented in the schema. The description adds no parameter-level guidance, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read one private saved workflow checkpoint') with a clear scope qualifier ('after restart'), which distinguishes it from the mutation-shaped sibling save_workflow_checkpoint. It does not explicitly name that sibling or list_sequence_checkpoints, so differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'after restart' hints at the triggering situation and 'pending and unknown operations require reconciliation' implies a follow-up path, but no alternative tool is named (e.g. acknowledge_operation_recovery, inspect_operation_recovery) and no when-not-to-use guidance is given. Usage is inferable but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_workflow_jobInspect Workflow JobA
Read-onlyIdempotent

Inspect exact local or UXP job identity. Host terminal events do not verify an output artifact; an absent job is unknown, never completed.

NameRequiredDescriptionDefault
job_idYesExact tracked job ID; missing receipts never imply completion.
originYesReceipt owner backend; never silently changes route.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds important semantic context: host terminal events do not prove an output artifact exists, and a missing job must not be treated as completed. This materially improves correct interpretation beyond the structured annotations, though it does not describe returned job states or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the tool's purpose and followed by the key caveat about absent or terminal events. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete enough given the rich input schema, output schema, and annotations, and it supplies the critical caveat that absence is not completion. A little more routing guidance against sibling job tools would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so job_id, origin, and the optional CEP/project guards are already well documented in the schema. The description reinforces exact job identity and local/UXP origin but adds little parameter-specific meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: inspecting local or UXP workflow job identity, with scope limited to exact tracked jobs. It is clear enough to distinguish inspection from mutation-oriented siblings like cancel_workflow_job, but it does not explicitly name when to choose it over wait_workflow_job or status tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for checking exact job identity and warns that absent jobs are unknown, never completed. However, it does not explicitly state when to use this versus wait_workflow_job, cancel_workflow_job, or other job/status inspection tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

invert_selectionInvert SelectionA

Invert the current clip selection in the active sequence (selected become deselected and vice versa).

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutating-but-non-destructive profile is known. The description adds the useful behavioral fact that both directions flip (selected→deselected and vice versa), but says nothing about track scope, what happens with an empty selection or no active sequence, or how the edit interacts with the idempotency_key retry contract.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the parenthetical clarifying the flip semantics earns its place by removing ambiguity about what 'invert' means.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The operation is inherently simple and the output schema plus fully documented schema parameters cover return values and guard semantics. For a one-line selection toggle, the description supplies everything an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including detailed prose for idempotency_key, expected_cep_target and expected_project_path, so the schema carries parameter meaning entirely. The description adds no parameter-level information beyond what is already documented, which is the baseline-3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (invert) and resource (current clip selection in the active sequence) and even explains the resulting state change with a parenthetical. It is clearly distinguishable from siblings like select_all_clips or set_clip_selection, though it never names those siblings to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the operation itself: you call it when you want the complement of the current selection. However, there is no explicit guidance on when to prefer this over select_all_clips / deselect_all_clips / set_clip_selection, and no stated preconditions such as requiring an open active sequence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

is_work_area_enabledIs Work Area EnabledB

Check whether the work area bar is enabled on the active sequence

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (destructiveHint false, openWorldHint false), so the bar is lower. However, the description offers no behavioral context beyond the purpose: it does not explain that the optional guard parameters can cause the call to refuse when project/sequence identity mismatches, which is the main failure mode. There is also mild tension between the query-like "Check" wording and readOnlyHint=false, though this is likely conservative annotation rather than a real conflict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. Appropriately sized for a simple boolean-status tool, though it uses its brevity at the cost of any sibling disambiguation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the guards are documented in the schema. What is missing is the precondition context (an active sequence must exist, what 'enabled' means for a work area bar) for a tool that otherwise has ambiguous practical semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both guard parameters (expected_cep_target, expected_project_path) are fully documented in the schema. The description adds nothing about them, which is acceptable given full coverage but leaves no added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: "Check whether the work area bar is enabled on the active sequence." An agent can tell it apart from set_work_area and get_work_area, though it never names those siblings explicitly. The scope (active sequence) is precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the word "Check" – there is no explicit statement of when to call this versus get_work_area (which presumably returns the range) or set_work_area. No prerequisites such as requiring an open active sequence are given, leaving the agent to infer the context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lift_selectionLift SelectionB

EXPERIMENTAL (undocumented QE DOM: the sequence lift command, exposed as left() on 25.2). Lift (remove without closing the gap) the content between the sequence in/out points on every targeted, unlocked track, then verify the range is empty on those tracks and nothing else on them moved. Marks that Premiere stored just off a frame are first re-written on that exact frame through QE (marksRewritten). Requires sequence in/out marks that do not span the whole sequence. Untargeted tracks are not verified; any that changed are listed in otherTracksChanged.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is unusually rich about behavior — post-write verification, QE mark rewriting ('marksRewritten'), and the 'otherTracksChanged' side effect — but it explicitly states the tool removes timeline content, while annotations declare destructiveHint=false and idempotentHint=false. A content-removal edit is not an additive update per the annotation contract, so the description and structured metadata give the agent opposite signals about risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the EXPERIMENTAL caveat and the core action, then adds verification, mark handling, precondition and the untargeted-track caveat. Every sentence carries distinct operational information; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the return-shape burden is lifted, and the description covers scope, preconditions, post-write verification and residual side effects. It stops short of describing failure modes of the QE path or how partial failures surface, but an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the idempotency key, expected CEP target and project-path guards are already fully documented in structured fields. The description adds no parameter-level meaning (it never mentions the reviewed-identity guards that gate the command), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource and defines the semantics precisely: 'Lift (remove without closing the gap) the content between the sequence in/out points on every targeted, unlocked track'. The parenthetical implicitly separates it from the ripple variants in the sibling list (ripple_remove_timeline_ranges, ripple_delete), so an agent can pick the right tool 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a real precondition ('Requires sequence in/out marks that do not span the whole sequence') and a scope warning (untargeted tracks are not verified), which implies when to call it. But it never names the alternative to use instead (e.g. ripple removal when the gap should close), leaving the choice between siblings to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_audio_effectsList Available Audio EffectsB
Read-onlyIdempotent

List all available audio effects in Premiere Pro. Uses QE DOM.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered. The 'Uses QE DOM' note adds a meaningful hint that results come from the QE DOM layer (and may therefore differ from UXP-sourced effect lists), but there is no disclosure of result shape, coverage, or whether the list is exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words, purpose front-loaded in the first sentence. Nothing is buried or repeated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the read-only annotations carry the safety story. However, for a tool whose nested CEP guard parameters are unusually elaborate, and whose sibling 'list_available_effects' overlaps, the description leaves the agent to infer scope and result coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with zero required parameters, so the nested guard objects (expected_cep_target, expected_project_path) are already fully documented in the schema. The description adds nothing about these guards, which is acceptable at this coverage level but leaves the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all available audio effects') and scopes it to Premiere Pro. It implicitly differentiates from the sibling 'list_available_effects' via the 'audio' qualifier, but never names that sibling or confirms whether the generic tool also includes audio effects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to call this versus 'list_available_effects', 'list_available_audio_transitions', or how the returned names feed into 'apply_audio_effect'. The only extra sentence ('Uses QE DOM') is an implementation note, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_audio_transitionsList Available Audio TransitionsA
Read-onlyIdempotent

EXPERIMENTAL (undocumented QE DOM): List audio transitions. Reports an unavailable or empty legacy catalog as an error rather than an assumed usable list.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real value beyond them: it marks the tool as EXPERIMENTAL against an undocumented QE DOM, and states that an unavailable or empty legacy catalog surfaces as an error instead of a falsely usable list — a non-obvious failure mode an agent must handle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact clauses, front-loaded with the EXPERIMENTAL caveat so the agent sees the risk first. No filler; the caveat and error behavior each earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and parameters fully documented in the schema, the description only needs to cover the behavioral caveat, which it does. The remaining gap is the absence of explicit sibling routing, but overall it gives enough to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both optional parameters (expected_cep_target, expected_project_path) have 100% schema description coverage with detailed nested documentation, so the schema carries parameter meaning. The description adds no additional parameter guidance, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List audio transitions') and flags the experimental QE DOM origin, so the agent knows exactly what it returns. It does not explicitly distinguish itself from the sibling list_available_transitions (video) or list_available_audio_effects, leaving that separation implicit in the word 'audio'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to call this versus list_available_transitions or list_available_audio_effects, nor any prerequisite for the experimental QE DOM path. The only usage-adjacent statement is about error reporting, which is behavioral rather than situational.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_effectsList Available EffectsA
Read-onlyIdempotent

List available video effects in Premiere Pro. Uses the full QE catalog when exposed; otherwise returns a verified, explicitly partial set of common effects resolved by exact name.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior. The description adds meaningful context beyond that: the result may come from the full QE catalog when available, otherwise from a verified but explicitly partial set resolved by exact name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is two sentences, front-loads the core action, and uses the second sentence for the important fallback behavior. There is no redundant or wasted language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The input schema is fully described, an output schema exists, and annotations cover the safety profile, so the description does not need to explain return values or mutation risk. It supplies the key catalog-coverage caveat; only explicit usage routing to sibling tools is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two optional guard parameters are fully documented in the schema. The description adds no parameter-specific meaning beyond that, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'List available video effects in Premiere Pro.' It distinguishes itself from the audio-effects and transition siblings by naming video effects, and from clip-effect tools by framing this as listing the available catalog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the catalog-listing tool for video effects, but it does not explicitly say when to call it versus apply_effect, list_clip_effects, list_available_audio_effects, or list_available_transitions. The fallback-catalog sentence describes behavior more than usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_transitionsList Available TransitionsA
Read-onlyIdempotent

EXPERIMENTAL (undocumented QE DOM): List video transitions. Returns a built-in hint set on PPro 2026 where the registry list is empty even though by-name lookup works; the hint set is not exhaustive.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent safety profile, and the description adds genuinely non-obvious context: undocumented QE DOM surface, and a PPro 2026 quirk where the registry list is empty so a built-in hint set is returned instead. Explicitly saying the hint set is not exhaustive is important for an agent's confidence in the results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with the most decision-relevant caveat (experimental, incomplete results) surfaced early. No filler, though the PPro 2026 clause is dense and could be one clause shorter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema and annotations cover returns and safety, and the experimental caveat is present. What is missing is the operational link to the mutation tools that consume this list (add_transition, batch_add_transitions) and any note on what to do when the hint set is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are optional pre-flight guards whose semantics are fully documented in the schema (100% coverage), so the description need not repeat them. It adds no parameter guidance of its own, which is acceptable at baseline but not additive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List video transitions') and flags the source as undocumented QE DOM, which separates it from the audio sibling and from the add_transition family. It does not explicitly name those siblings, so the differentiation is only partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: an agent infers it should call this before add_transition to enumerate valid transition names. There is no explicit 'use this when… / do not use when…' and no named alternative such as list_available_audio_transitions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_clip_effectsList Clip EffectsA
Read-onlyIdempotent

List effects/components exposed by the clip's standard DOM collection, with properties and current values. Some hosts omit QE-applied effects from this collection; absence here does not prove an effect is absent. get_effect_properties uses the same collection. Inspect Premiere's Effect Controls UI when complete QE effect presence must be confirmed.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip to inspect
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds critical behavioral context beyond annotations: some hosts omit QE-applied effects, and absence here does not prove an effect is absent. This is exactly the kind of reliability caveat an agent needs before acting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each earning its place. The core operation is front-loaded, followed by the limitation, the sibling comparison, and the alternative. No wasted words; the structure moves from what it does to how to interpret the result.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the nested schema, rich annotations, and the presence of an output schema, the description is complete enough. It explains the tool's main limitation and points to the UI alternative when completeness is required. Parameter and return-value details are appropriately left to the structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters in detail. The description does not add any parameter-specific syntax, format, or usage guidance beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('effects/components exposed by the clip's standard DOM collection') and clarifies the scope with 'with properties and current values.' It also distinguishes the tool from UI inspection and notes the shared collection with get_effect_properties, so an agent can tell what it does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context for use and an explicit alternative: 'Inspect Premiere's Effect Controls UI when complete QE effect presence must be confirmed.' It also warns that absence here is not proof of absence, which guides when not to rely on this tool. However, it does not explicitly say when to prefer get_effect_properties, which uses the same collection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_markersList MarkersA
Read-onlyIdempotent

List markers on the active sequence, or on a source project item that exposes a marker collection, including marker GUID and color when readable. A timeline-clip node_id returns a clean error instead of a raw TypeError.

NameRequiredDescriptionDefault
node_idNoOptional clip node ID to list clip markers instead of sequence markers
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds genuinely new behavior: marker GUID and color are included only 'when readable' (a partial-result caveat) and invalid clip node_ids yield a clean error rather than an exception. That partial-result and failure-mode context is exactly what annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary scope, then the fallback scope, then the failure caveat. The middle clause ('or on a source project item that exposes a marker collection') is slightly dense but carries real qualification, and nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is unnecessary, and the deep expected_cep_target guard is fully described in the schema. What remains thin is disambiguation from the many marker-related siblings, which the description leaves to inference for a 3-parameter, nested-object tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters are documented in the schema, including node_id's clip-vs-sequence semantics and the guard options. The description restates the node_id behavior and adds only the error outcome, so it does not meaningfully exceed the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List markers') plus the two scopes it covers: the active sequence or a source project item. It also previews the returned fields (GUID, color). It does not name or distinguish itself from close siblings such as get_clip_markers, get_sequence_markers_by_type, or export_review_markers, so an agent must infer the division of labor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It establishes a default (active sequence) and an alternate scope (source project item), and warns that a timeline-clip node_id produces a clean error rather than a raw TypeError. However, it never points to the sibling tools an agent should pick instead when it wants clip markers or type-filtered markers, so the routing 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.

list_project_itemsList Project ItemsB
Read-onlyIdempotent

List all items in the project panel (clips, bins, sequences)

NameRequiredDescriptionDefault
bin_pathNoOptional bin path to list items from (e.g., 'Footage/Raw'). Lists root items if omitted.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the listing includes clips, bins, and sequences, but does not disclose recursion behavior, guard precondition behavior, or whether large projects affect performance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. It states the action, resource, and returned item categories immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a rich schema, full parameter descriptions, and an output schema, so the description need not explain return values. However, given the large sibling set, it is minimally complete: it does not clarify root-vs-bin scope or why an agent should choose this inventory tool over other project-item lookup tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 does not mention the optional bin_path scoping or the expected_cep_target/expected_project_path guard parameters, but the schema already documents them thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('List') and resource ('items in the project panel') and specifies the item types returned (clips, bins, sequences). It is understandable in isolation, but it does not distinguish itself from closely related siblings such as get_bin_contents, search_project_items, or find_project_item_by_name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives like get_bin_contents or search_project_items. The only usage signal is implied by the phrase 'project panel', which is not enough to route an agent among many similar inventory tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sequence_checkpointsList Sequence CheckpointsA
Read-onlyIdempotent

List '[checkpoint]' sequences created by create_sequence_checkpoint, optionally only those cloned from one sequence, with their labels, timestamps, track and clip counts. Read-only.

NameRequiredDescriptionDefault
sequence_idNoOnly list checkpoints of this sequence (ID or name).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotent and non-destructive, so the trailing 'Read-only' largely repeats structured data. The description does add value by enumerating what is returned (labels, timestamps, track and clip counts) and the optional clone-origin filter, but says nothing about ordering, pagination, or the behavioral effect of the CEP guard parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that names the resource, the producer tool, the optional filter, and the returned fields with no padding. The bracketed '[checkpoint]' quoting is slightly awkward but harmless.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required and the description still sketches them. The read-only, zero-required-param nature is fully covered by annotations and the schema's guard descriptions; only ordering/pagination behavior is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so sequence_id, expected_cep_target, and expected_project_path are already fully documented in the schema. The description only restates the sequence_id filtering idea and adds nothing about the guard parameters, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (list checkpoint sequences) and ties it to its producer, create_sequence_checkpoint, so an agent can place it in the checkpoint workflow. It does not directly contrast with the other listing siblings (list_sequences, get_sequence_structure), leaving some ambiguity about which list tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage ('created by create_sequence_checkpoint', optional narrowing to a single sequence) but never states when to prefer it over list_sequences or other inspection tools, nor any prerequisites. Usage is inferable rather than prescribed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sequencesList SequencesC
Read-onlyIdempotent

List all sequences in the project

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered, but the description adds nothing beyond the name. It says nothing about ordering, pagination, whether empty projects return an empty list, or the purpose of the two optional guard parameters that can cause commands to refuse — behavior the agent would want surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short, front-loaded sentence with zero waste. It is appropriately sized, but the brevity comes at the cost of information rather than being dense with value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations fully cover the safety profile, so the description need not explain return values. However, for a tool carrying non-trivial guard parameters and sitting among dozens of similar read tools, one bare sentence leaves the agent without enough context to route confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both optional parameters (expected_cep_target, expected_project_path) are fully documented in the schema. The description itself contributes no parameter meaning, which is the baseline expectation when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('List all sequences') scoped to 'the project', which is enough to distinguish it from mutation siblings like create_sequence or delete_sequence. It stops short of distinguishing it from adjacent reads such as get_sequence_count or list_project_items, which affects routing among similar tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this over the many sibling read tools (get_sequence_count, get_full_sequence_info, get_project_info, list_project_items). No exclusions, prerequisites, or alternative routing are stated; the agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sequence_tracksList Sequence TracksB
Read-onlyIdempotent

List all tracks (video and audio) in a sequence

NameRequiredDescriptionDefault
sequence_idNoSequence ID or name. Uses active sequence if omitted.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered and the description does not contradict it. The description adds no further behavioral context (e.g. that it enumerates both track groups in index order, or how tracks are identified), leaving it at the baseline for an annotated read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. It is efficient, though partly because it omits anything beyond the bare action, so brevity here is borderline under-specification rather than tight authoring.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full annotation coverage, the thin description is mostly sufficient for a read-only list call. However, for a tool whose schema carries nested optional identity guards (expected_cep_target, expected_project_path), a word about when those matter and what the listing contains would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the nested expected_cep_target and expected_project_path guard parameters, so the schema does the heavy lifting. The description mentions no parameter semantics at all, which is acceptable at high coverage but adds zero value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all tracks (video and audio) in a sequence'), which is unambiguous about what is returned. It does not, however, differentiate from nearby siblings such as get_sequence_structure, get_track_info, or get_timeline_summary, so an agent cannot route between them on this text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no when-to-use guidance, no prerequisites, and no named alternatives. The only scoping hint (falling back to the active sequence when sequence_id is omitted) lives in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_stock_titlesList Stock TitlesA
Read-onlyIdempotent

List the Essential Graphics title templates that ship with the installed Premiere Pro (Basic Title, Lower Thirds, Credits, Social Media, and more), with each template's text fields in order and their default text. Reads the local .mogrt files only; does not contact Premiere. Use the names with add_title.

NameRequiredDescriptionDefault
categoryNoOptional category folder filter, for example Titles, Lower Thirds, Credits, or Social Media (case-insensitive).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds real behavioral context by stating it reads local .mogrt files only and never contacts Premiere. It also discloses the shape of what comes back (text fields in order with default text), which is useful even though an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with what is listed and what is returned, followed by the locality constraint and the handoff to add_title. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Purpose, locality constraint, return-detail, and the follow-up tool are all present, and an output schema plus full schema descriptions cover the parameter and response surface. Nothing an agent needs to select or call this read-only tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the category filter and the CEP/project guard objects are already documented in the schema. The description adds no parameter-level detail, but its 'local only, does not contact Premiere' note implicitly clarifies why the CEP guard fields are inapplicable here — modest added value, baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list Essential Graphics title templates shipped with Premiere Pro), enumerates concrete examples, and describes the returned detail (text fields in order plus default text). It is clearly distinguishable from add_title and from the mogrt-library tools, which operate on user libraries rather than the shipped templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use the names with add_title' gives the downstream condition for calling this tool, and 'Reads the local .mogrt files only; does not contact Premiere' sets a clear precondition. It stops short of naming when a sibling (e.g. inspect_mogrt_library) is the better choice for non-stock templates, so no explicit exclusion is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lock_trackLock TrackA

Set a video track's lock state and read it back to verify the change.

NameRequiredDescriptionDefault
lockedYesTrue to lock, false to unlock
track_indexYesVideo track index (0-based)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a non-read-only, non-destructive, local operation, so the description does not need to repeat safety basics. It adds useful behavior by saying the lock state is read back to verify the change, but it does not explain what locking implies for editing or any sequence-level preconditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted language. It states the action and verification behavior directly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage, annotations, and an output schema, the description does not need to document return values or every optional guard. It is complete enough for a simple track mutation, though it omits any mention of active-sequence/project prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 even without extra parameter explanation in the description. The description reinforces that the target is a video track, but it does not add meaning beyond the schema's own descriptions for track_index, locked, idempotency_key, or the optional guards.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: setting a video track's lock state. It also states that the change is read back for verification, which distinguishes it from related track tools such as toggle_track_visibility, mute_track, and get_track_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to prefer lock_track over related tools or when not to use it. It implies the operation from the verb but provides no prerequisites, exclusions, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_media_watchManage Media WatchA
Destructive

Start, inspect, rescan, or stop one session-scoped local media-folder monitor. It records bounded file-change signals and never imports media automatically.

NameRequiredDescriptionDefault
actionYesWatcher action.
recursiveNoMonitor contained subdirectories; defaults to false.
watch_pathNoAbsolute contained directory to monitor; required for start.
target_bin_idNoOptional proposed Premiere destination-bin ID.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
allowed_extensionsNoFile extensions eligible for proposals; required for start.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathNoAbsolute approved workspace root; required for start.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and closed-world, so the safety profile is largely covered; the description usefully adds that monitoring is session-scoped, that signals are 'bounded,' and that no automatic import occurs. However, it does not explain what 'bounded' means, what `stop` destroys, or that a repeat `start` is not deduplicated, leaving the destructive annotation's actual scope unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, with the action list and the 'no auto-import' guarantee front-loaded. Nothing in it is redundant against the annotations or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, but for a 9-parameter tool the description does not differentiate what each action does (e.g. `scan`/rescan vs `status`), does not state the prerequisites for `start`, and does not link the watch to the import-preview workflow it feeds.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the `action` enum and the idempotency contract, so the schema does the heavy lifting and baseline 3 applies. The description adds no parameter-level meaning at all — it never tells the agent that `start` requires watch_path, allowed_extensions and approved_workspace_path, nor what `target_bin_id` proposes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb set ('Start, inspect, rescan, or stop') and a specific resource ('session-scoped local media-folder monitor'), and adds the negative scope 'never imports media automatically,' which separates it from import_media/import_folder. It stops short of naming `preview_watched_media_import`, the sibling an agent would most likely confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Session-scoped' and 'never imports media automatically' imply the usage context (advisory monitoring rather than actual ingest), but there is no explicit statement of when to pick this over `preview_watched_media_import` or `refresh_media`, and no prerequisites such as needing an approved workspace path before `start`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_project_contextManage Project ContextA
Destructive

Capture, enrich, import revision-bound editorial evidence, inspect, or clear a durable local Premiere project-context index. Capture stores bounded active-sequence/source metadata; local enrichment and evidence import add caller-approved transcripts, speaker labels, shots, audio observations, notes, or opaque frame references without re-analyzing media. Never include secrets or unrelated customer data.

NameRequiredDescriptionDefault
actionYesCapture active context, enrich it, import revision-bound editorial evidence, inspect status, or clear one local project index.
recordsNoFor enrich, up to 512 transcript, shot, audio, or note records
replaceNoFor enrich, replace prior enrichments while retaining captured core records
evidenceNoFor import_evidence, up to 512 caller-approved records with strict source/timeline revision guards. The server does not read referenced frame files, invoke analysis, or contact a provider.
project_idNoProject context ID returned by capture; optional for status to list projects
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds important behavioral context: the index is durable and local, enrichment/import uses caller-approved data without re-analyzing media, and secrets should never be included. It does not explicitly detail what clear destroys beyond the index itself, but destructiveHint already signals the risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the full action list and resource, then adds only high-value constraints in two dense but purposeful sentences. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex multi-action schema, nested guard objects, and output schema, the description covers the essential scope, safety constraints, and no-analysis behavior. Its main remaining gap is routing guidance against sibling context/search tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already carries parameter semantics. The description adds useful action-level meaning for capture/enrich/import, but it does not explain the idempotency_key, expected_cep_target, or expected_project_path guards beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names specific operations (capture, enrich, import evidence, inspect, clear) and the resource (a durable local Premiere project-context index), so the tool's purpose is clear. It does not explicitly differentiate itself from siblings such as search_project_context or create_editorial_context_pack, keeping it just below a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action list and schema enum imply when each mode is used, but the description does not state when to use this tool versus related tools like search_project_context. There are no explicit exclusions or alternative-routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_proxiesManage ProxiesA
Destructive

Create or attach proxies for a project item, or set Premiere's proxy display. 'toggle' is application-wide, not per item: it changes app.getEnableProxies()/setEnableProxies() for every sequence and monitor, and item_id is only checked to exist. Pass enabled: true or false to set a known state; omitting enabled flips the current state, so two calls undo each other. The result reports previousEnabled and proxiesEnabled read back from Premiere. Note: 'create' only requests a proxy encode from Adobe Media Encoder and returns an unverified handoff. Independently verify the AME queue or output file before calling this tool again with action 'attach' and proxy_path set to the output_path you passed here. Optional start_batch requests processing of every ready AME queue job, including unrelated jobs. There is no single-call create-and-attach in Premiere's ExtendScript API.

NameRequiredDescriptionDefault
actionYesAction to perform on proxies
enabledNoFor 'toggle' only: sets the application-wide proxy display to this state (true shows proxies, false shows full-resolution media) and verifies it by reading app.getEnableProxies() back. Omit to flip the current state, which is discouraged because the outcome depends on a state you have not read.
item_idYesNode ID or name of the project item
proxy_pathNoPath to an existing proxy file (required for 'attach')
output_pathNoFull output path for the proxy to be rendered to (required for 'create')
preset_pathNoPath to a proxy ingest preset (.epr) for 'create'. If omitted, the server lists Premiere's IngestPresets/Proxy presets and AME H.264 system presets, skips every preset whose output destination is Same as Project (Adobe's shipped proxy presets are), and uses the first remaining one. Fails with a clear error when none qualify.
start_batchNoOpt in to start the entire ready Adobe Media Encoder queue after this handoff, including unrelated jobs. Default false (enqueue only). A successful call does not verify that any render started or completed.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructive=true/readOnly=false annotations, it discloses real side effects: 'toggle' is app-wide across every sequence and monitor, item_id is only existence-checked, omitting enabled flips state so two calls undo each other, and start_batch processes unrelated ready jobs. This is substantial added context; it doesn't mention permissions or failure/rate-limit behavior, keeping it just short of the top.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and front-loaded: the app-wide nature of 'toggle' and the unverified-handoff caveat lead. Every sentence carries operational value, though the paragraph is long and could be split into action-oriented bullets for faster scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-param, nested-schema, destructive mutation tool with an output schema, the description covers the create→verify→attach workflow, the toggle state semantics, and the readback fields (previousEnabled/proxiesEnabled). 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema baseline is 3. The description still adds meaning: item_id is only validated for existence under 'toggle', start_batch includes unrelated queue jobs, and create requires a follow-up attach with proxy_path set to output_path — useful cross-parameter guidance beyond the field docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names the specific verbs and resource — create/attach proxies for a project item and set Premiere's proxy display — and distinguishes the 'toggle' action as application-wide rather than per-item. An agent can immediately tell this apart from siblings like has_proxy and detach_proxy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It spells out when each action applies, warns that 'create' is only an unverified AME handoff, instructs to verify the AME queue/output before calling 'attach' with proxy_path, and explicitly states no single-call create-and-attach exists. Alternatives and preconditions are concrete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_keyframe_time_domainMap Keyframe Time DomainA
Read-onlyIdempotent

Translate source, clip-relative and sequence ticks from an inspected snapshot. Warns outside visible range; refuses nested, reverse or retimed clips until a measured mapping exists. No keyframe write or rendering claim.

NameRequiredDescriptionDefault
domainYesExplicit time domain.
clip_idYesExact snapshot clip identity.
snapshotYesVersion 1 canonical snapshot from inspect_timeline_snapshot or an equivalent verified adapter; exact tick strings, host identities, completeness, tracks/clips and SHA256 revision are validated before use.
time_ticksYesRequested time in declared domain.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds meaningful context: it warns outside the visible range, refuses nested/reverse/retimed clips until a measured mapping exists, and disclaims keyframe writes or rendering claims. This is strong disclosure of failure modes and limitations 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with the core operation front-loaded. The refusal and limitation clauses are useful rather than padding, and there is no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested schema and an output schema, the description covers purpose, failure conditions, and scope limitations. It leaves return-value details to the output schema, which is appropriate, though it could explicitly connect the snapshot parameter to inspect_timeline_snapshot.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter including the domain enum and snapshot validation. The description only echoes the three domain values and adds no extra syntax or format information, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (translate) and resource (source, clip-relative and sequence ticks) and scopes it to an inspected snapshot. It is clear enough to distinguish from generic timeline conversion, though it does not explicitly name the sibling convert_timeline_time.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The first sentence implies the tool is used when converting ticks from a snapshot, and the refusal conditions clarify when it cannot be used. However, it gives no explicit comparison to alternatives such as convert_timeline_time and does not state prerequisites for obtaining the inspected snapshot.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_source_ranges_to_timelineMap Source Ranges To TimelineB

Read-only mapping from source-media time ranges to placements on one sequence track. Reads the selected track once, maps only normal-speed forward clips, reports source portions not present on the track as unplaced, and returns bounded pages. This inspects timeline placement; it does not prove rendered or audible content.

NameRequiredDescriptionDefault
rangesYesSource-media ranges to map; maximum 2000.
media_pathNoExact media path returned by Premiere to match. Provide this or source_project_item_id.
track_typeYesTrack collection to inspect.
range_limitNoMaximum mapped ranges per page (default: 50, maximum: 200). Payload budget may shorten the page.
sequence_idNoSequence name or ID; uses the active sequence when omitted.
track_indexYesZero-based index within the selected track collection.
range_offsetNoZero-based offset into the input ranges after mapping (default: 0). Follow nextOffset to continue.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
source_project_item_idNoProject item node ID to match. Provide this or media_path.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds real behavioral substance beyond the annotations: single track read, normal-speed forward clips only, unplaced source portions reported, paged results, and an explicit disclaimer that it does not prove rendered output. However, it opens with 'Read-only mapping' while the annotations declare readOnlyHint=false, a direct signal conflict that could lead an agent to under- or over-trust the call; that conflict caps the score despite the otherwise strong disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler, and the core operation is front-loaded before the qualifiers. The closing sentence about not proving rendered/audible content earns its place by preventing a common misuse of the result.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the description covers the behavioral essentials an agent needs: scope, inclusion rules, unplaced reporting, and paging. The one gap is guidance on the media_path vs source_project_item_id choice and default sequence resolution, which are covered only in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the ten parameters (paging via range_limit/range_offset, identity via media_path/source_project_item_id, the reviewed CEP guard) are already documented. The description reinforces paging ('returns bounded pages') but adds no syntax, defaults, or matching rules beyond what the schema states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('mapping from source-media time ranges to placements on one sequence track') plus the scope (one track), which is far more precise than the title. It does not name any sibling (e.g. convert_timeline_time or map_keyframe_time_domain) to demarcate the boundary explicitly, so it lands at clear-but-undifferentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Applicability is only implied through constraints: 'maps only normal-speed forward clips' and 'does not prove rendered or audible content' tell the agent when the answer will be partial. There is no explicit statement of when to reach for this versus convert_timeline_time or map_keyframe_time_domain, nor of prerequisites such as an open sequence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_word_timeline_occurrencesMap Word Timeline OccurrencesA
Read-onlyIdempotent

Map revision-bound transcript words to every forward1x source placement, with occurrence IDs and exact snapshot placement ticks. Refuses missing pages, nonlinear retiming, reverse and ambiguous nests.

NameRequiredDescriptionDefault
snapshotYesVersion 1 canonical snapshot from inspect_timeline_snapshot or an equivalent verified adapter; exact tick strings, host identities, completeness, tracks/clips and SHA256 revision are validated before use.
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior, and the description adds useful behavioral context: occurrence IDs, exact snapshot placement ticks, and specific refusal conditions. It does not cover every operational detail, but it meaningfully supplements 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core operation and followed by refusal conditions. There is no redundant or wasted phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex, with nested parameters and optional guard fields, but the schema is richly documented and an output schema exists. The description covers the core mapping behavior and failure modes; the remaining operational details are handled adequately by the schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all four parameters in detail. The description reinforces that words are revision-bound and placements are snapshot-derived, but adds little parameter-level meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: it maps revision-bound transcript words to forward1x source placements and returns occurrence IDs and exact placement ticks. That is more than a restatement of the name and clearly distinguishes this word-level mapping operation from range- or time-domain mapping siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states clear exclusion conditions: missing pages, nonlinear retiming, reverse nests, and ambiguous nests are refused. It does not name an alternative sibling to use instead, but the allowed context is sufficiently clear for an agent to know when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

match_frameMatch FrameC

Get source media info for the frame at the current playhead on a specific track. Useful for match frame operations.

NameRequiredDescriptionDefault
track_typeNoTrack type (default: video)
track_indexNoTrack index (default: 0)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false) carry most of the behavioral load, but the description adds nothing beyond them: it doesn't say whether the operation moves the source monitor, changes selection, or is side-effect free. The 'Get' phrasing implies a pure read while readOnlyHint=false suggests possible state changes, a tension the description never resolves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action, so an agent gets the point immediately. The second sentence is largely redundant with the tool name, which is the only real waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be described, and the nested guard parameters are richly documented in the schema. Still, for a tool with nested objects and pre-mutation identity guards, the description is thin and omits any note about the CEP-only guard semantics or when the guard may refuse; adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so track_type, track_index, and the extensive expected_cep_target/expected_project_path guards are already fully documented in the schema. The description only gestures at 'a specific track' and the playhead, adding no format or defaulting detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get source media info for the frame at the current playhead on a specific track'), which is concrete enough for an agent to act on. However, it does not distinguish itself from closely related siblings such as get_clip_at_position, get_clip_at_playhead, get_source_monitor_info, or open_in_source, and the trailing 'Useful for match frame operations' merely restates the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage signal is 'Useful for match frame operations,' which is a restatement of the title rather than guidance. There is no statement of when to prefer this over get_clip_at_position / get_playhead_position, and no mention of prerequisites (e.g., an active sequence or playhead placement).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_clipMove ClipA

EXPERIMENTAL (undocumented QE DOM for track changes): Move a clip to a new position on the timeline; optional track moves use Premiere's QE API and may not work on every version.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip to move
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
new_track_indexNoOptional new track index to move the clip to
new_start_secondsYesNew start time in seconds
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as a non-readonly mutation, and the description adds valuable behavioral context: it is experimental, relies on undocumented QE DOM for track changes, and may fail by Premiere version. It still does not discuss side effects, undo behavior, or repeat-call semantics, but the main reliability caveat is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded with the EXPERIMENTAL warning and then states the core operation. There is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation with six parameters, nested expected-identity objects, annotations, and an output schema, the description covers the core operation and the key experimental/QE risk. The schema carries the guard and idempotency details, though the description could still mention that it requires an active sequence and whether other clips may be affected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines node_id, new_start_seconds, new_track_index, idempotency_key, and the expected-identity guards. The description only implies that new_track_index may trigger the QE path; it adds little parameter detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: move a clip to a new position on the timeline. It also flags that optional track moves use the QE API, but it does not explicitly distinguish this from siblings such as move_clip_to_track or set_clip_start_time.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used for repositioning a clip and warns that optional track moves are experimental and version-dependent. It gives no explicit when-not guidance or named alternatives among the many sibling editing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_clip_to_trackMove Clip To TrackA

Move a clip to a different track of the same type, keeping its start, duration, and source in/out. EXPERIMENTAL: uses the undocumented QE DOM moveToTrack. Refuses without changing anything when the origin or destination track is locked or the destination range is occupied. Reads the timeline back: verified only when the clip is on the destination track with the same span and source range and is gone from the origin track; committed_unverified when the source range cannot be read; otherwise failure with Undo guidance.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
target_track_indexYesTarget track index (0-based)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the annotations (which only say it is not read-only, not destructive, not idempotent) by disclosing that it relies on the undocumented QE DOM moveToTrack, that refusals are atomic ('without changing anything'), and how the result is adjudicated via timeline read-back into verified / committed_unverified / failure. That is exactly the post-call interpretation an agent needs for an experimental mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the action and its invariants before the EXPERIMENTAL caveat, then preconditions, then verification semantics — a sensible order with no filler. The final sentence is dense with clause chaining, but every clause carries distinct failure-mode information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a guarded, non-idempotent mutation with nested guard objects and an output schema, this covers what the agent cannot get from structured fields: the experimental backend, the atomic-failure guarantee, and how to read the outcome. Nothing needed to invoke it correctly or interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the parameters (node_id, target_track_index, idempotency_key, expected_cep_target, expected_project_path) are thoroughly documented in the schema itself. The description adds no parameter-specific meaning, such as whether node_id must come from the same sequence or how target_track_index relates to the source track's type — baseline 3 for a fully documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb+resource ('Move a clip to a different track') immediately qualified by the constraint 'of the same type' and the invariants kept (start, duration, source in/out). This clearly separates it from move_clip, which relocates a clip in time rather than across tracks, without the agent needing to open both schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete conditions under which the tool declines ('origin or destination track is locked or the destination range is occupied') and flags itself EXPERIMENTAL, which is real guidance for when it is safe to reach for. It does not explicitly tell the agent to use move_clip instead when changing position rather than track, and offers no prerequisites about track-type matching beyond the same-type note.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_items_to_binMove Items To BinC

Move multiple project items to a target bin at once.

NameRequiredDescriptionDefault
item_idsYesArray of node IDs or names of items to move
target_binYesName or node ID of the target bin
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is structured data, not description text. Beyond that the description adds nothing: it does not say whether the target bin must pre-exist, what happens to items already in the bin, how duplicate or missing item IDs are handled, or whether an entire batch fails if one ID is invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or repetition of the title. It is efficient, though the brevity borders on under-specification for a batch mutation tool rather than optimal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is fully documented, so return values and parameter shapes need no prose. However, for a mutation tool with optional precondition guards (expected_cep_target, expected_project_path) and idempotency semantics, the description gives an agent no cue about failure modes or when those guards matter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters including idempotency_key, expected_cep_target and expected_project_path are already documented in structured form. The description's only added meaning is that item_ids is a batch ('multiple ... at once'); it says nothing about the precondition-guard parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Move ... project items to a target bin') and quantifies scope with 'multiple ... at once', which implicitly separates it from the singular sibling move_item_to_bin. It never names that sibling, so the differentiation must be inferred from the word 'multiple'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no when-to-use guidance, no mention of the singular alternative move_item_to_bin or related tools such as delete_bin/create_bin, and no prerequisites (e.g., must the target bin already exist?). The only hint at selection is the word 'multiple'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_item_to_binMove Item To BinC

Move a project item to a different bin and confirm where it landed

NameRequiredDescriptionDefault
item_idYesNode ID or name of the item to move
target_binYesName or node ID of the target bin
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is covered. The description adds only the vague promise to "confirm where it landed"; it does not explain that the operation is a non-destructive project-metadata move (item stays usable), nor that the schema's optional idempotency_key is the way to retry safely despite idempotentHint=false, nor anything about the pre-flight guard parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, so nothing needs trimming. It is efficient but borders on under-specification for a 5-parameter mutation tool with nested guard objects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers the "confirm where it landed" return value and the schema richly documents guards and idempotency, so those gaps are partially absorbed. Still, for a mutation tool with a batch sibling, the description omits the routing information and the retry-after-timeout behavior an agent most needs before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including the nested expected_cep_target and idempotency_key is fully documented in the schema. Baseline 3 is appropriate; the description adds no extra parameter meaning of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Move a project item") plus a destination ("a different bin"), so an agent knows the operation. However, it never distinguishes itself from the sibling move_items_to_bin (plural), which is the obvious alternative for multi-item moves, leaving a real differentiation gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The description says nothing about when to prefer this single-item tool over move_items_to_bin or how to handle a batch.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_playhead_to_editMove Playhead To EditC

Move the playhead to the next or previous edit point.

NameRequiredDescriptionDefault
directionNoDirection (default: next)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, indicating a non-destructive mutation. The description adds no further behavioral context—such as what changes (only the playhead), whether it affects selection or scrolling, or any side effects. It relies entirely on annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple action, though it could benefit from a brief usage hint without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich parameter schema, annotations, and output schema, the description is minimally adequate. It does not mention prerequisites or the idempotency key's purpose (covered in schema), but for a straightforward playhead movement, it conveys the essential action. Still, it leaves gaps about context and side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description does not mention any parameters, which is acceptable given the high coverage, but it adds no semantic value beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Move') and resource ('playhead') and target ('next or previous edit point'), making the core action clear. However, it does not explicitly differentiate from siblings like set_playhead_position or navigate_playhead, which could cause ambiguity for an agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as set_playhead_position (which sets an exact position) or navigate_playhead. The description offers no context about prerequisites (e.g., requiring an active sequence) or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

multiple_undoMultiple UndoA

EXPERIMENTAL (undocumented QE DOM: qe.project.undo / undoStackIndex). Undo several Premiere project actions through QE, checking each step against Premiere's undo-stack position (stackVerified; the timeline itself is not read back) and reporting how many were undone. Only actions Premiere records are undoable: QE edits such as razor, insert, lift and extract report undoSteps (and undoStackIndex) in their results; pass that undoSteps as count to reverse exactly that call. A marker receipt with undoTracked:false recorded no undo step: calling Undo for it would reverse an earlier action. Only CEP tool results carry undoSteps; UXP tools and workflows that send several commands are not counted. Always pass expected_undo_stack_index to check the stack position, but matching position alone does not prove which action is on top. Observed marker boundaries refuse the entire request before any step unless acknowledge_untracked_markers:true explicitly permits prior non-marker actions. The barrier persists through server/helper reloads while the CEP engine remains alive; it cannot account for marker writes before observation, after an engine reset, or through UXP, the manual UI, or other clients. Matching the QE index verifies stack position only.

NameRequiredDescriptionDefault
countNoNumber of undo steps (default: 1)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_undo_stack_indexYesRequired safety guard: the undoStackIndex a tool result reported right after the call you want to reverse. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. The guard compares the position only; matching position cannot prove which action is on top.
acknowledge_untracked_markersNoExplicitly acknowledge that QE steps reverse or restore prior non-marker actions, because marker reversal is not verified. Default false; marker boundaries refuse the entire request before any step.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the annotations: it discloses the experimental QE basis, marker-boundary refusals, persistence limits of the barrier, and the fact that matching the QE index verifies only stack position, not the identity of the top action. It also warns that calling Undo for a receipt with undoTracked:false would reverse an earlier action. This is consistent with readOnlyHint=false and idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the EXPERIMENTAL QE caveat and core purpose, but the body is a dense wall of qualifications with some repetition, such as the repeated warning that matching stack position alone does not prove which action is on top. The complexity justifies detail, but structure and conciseness suffer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation-like QE operation with six parameters, nested objects, and an output schema, the description covers the critical preconditions, limitations, verification semantics, and refusal behavior an agent needs. Return reporting is handled by the output schema, so no return-value detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds operational meaning for count by saying to pass the edit's reported undoSteps to reverse exactly that call. It also explains that expected_undo_stack_index is an always-passed guard comparing Premiere's stack position, and that acknowledge_untracked_markers is the explicit opt-in for marker boundaries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: undoing several Premiere project actions through QE, with count derived from reported undoSteps. It distinguishes itself from a normal undo by emphasizing multiple steps and exact-call reversal, though it never explicitly names the sibling undo tool as the single-step alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when the tool applies: actions Premiere records, especially QE edits such as razor, insert, lift, and extract that return undoSteps. It also gives clear exclusions and safeguards, including marker receipts with undoTracked:false, UXP/non-CEP results not being counted, and the need for acknowledge_untracked_markers. It stops short of an explicit routing rule contrasting this with the sibling undo/redo tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mute_trackMute TrackB

Mute or unmute an audio track

NameRequiredDescriptionDefault
mutedYesTrue to mute, false to unmute
track_indexYesAudio track index (0-based)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — it says nothing about what state changes, whether the mute is reversible, or how the idempotency and CEP-target guards affect a call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero padding. It is efficient, though its brevity leaves little room for the routing or precondition information this tool needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The rich schema (fully documented idempotency key and CEP identity guards) plus the presence of an output schema mean the description need not restate parameter or return semantics. For a simple mute toggle, the one-line scope statement is sufficient alongside the structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so track_index, muted, idempotency_key and expected_cep_target are all documented in the schema in detail. The description contributes no additional parameter meaning, which is the baseline 3 case when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair ('Mute or unmute') and resource ('an audio track'), so the action is unambiguous. It does not distinguish itself from related siblings such as toggle_track_visibility or adjust_audio_levels, so an agent must infer the boundary from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description contains no when-to-use guidance, no prerequisites (e.g., an active sequence or a target track), and no mention of alternatives like toggle_track_visibility. The agent gets the verb but nothing about context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nest_clipsNest ClipsC

Unavailable on the legacy CEP backend: Premiere's documented createSubsequence API only creates a separate sequence and cannot safely replace the selected timeline clips with a nested-sequence reference.

NameRequiredDescriptionDefault
nameYesName for the nested sequence
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark this as non-read-only, non-destructive and non-idempotent, and the description usefully adds a backend compatibility constraint the annotations don't cover. However, it never says what the tool actually changes on a supported backend, what happens to the original clips, whether the operation is reversible, or what error surfaces on the legacy path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the constraint front-loaded and no filler. It is well-formed; the problem is that the one sentence spends its space on availability rather than on the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Against a four-parameter mutation tool with nested identity guards and an output schema, the description should at minimum say what is nested, from what source, and with what effect on the timeline. None of that is present — the definition is complete about what the tool cannot do and silent about what it does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so name, idempotency_key and the expected_* guards are already fully documented in the schema, making 3 the baseline. The description contributes nothing about how those parameters interact with nesting — for example whether 'name' collides with existing sequence names in the bin.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The text never states what the tool does — that it nests selected timeline clips into a nested sequence. It only explains a backend limitation of a documented Premiere API, leaving the agent to infer the operation from the name 'nest_clips' alone. It does distinguish the tool from create_subsequence implicitly, but only through a hardware-backend caveat rather than a purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one clear exclusion — do not rely on this on the legacy CEP backend — which is a real when-not signal. But it names no alternative (create_subsequence or unnest_sequence would be the obvious siblings), states no prerequisites, and doesn't tell the agent how to detect whether it is on the legacy backend.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

normalize_loudness_fileNormalize Loudness FileA

Create a new loudness-normalized media derivative with FFmpeg, then remeasure that exact output using EBU R128. When the remeasured file misses the target or true-peak ceiling (AAC encoding can raise the true peak), it renders again with a lowered ceiling or offset target, up to max_attempts, keeps the best attempt and reports every attempt's measured I and TP. Never overwrites the input or an existing output file.

NameRequiredDescriptionDefault
input_pathYesExisting local audio or video file
output_pathYesNew output path; must not already exist
target_lufsNoIntegrated loudness target from -70 through -5 LUFS (default: -16)
max_attemptsNoRenders allowed when the remeasured output misses the target or true-peak ceiling, for example after AAC encoding raises the true peak (default: 2; 1 disables retries)
tolerance_luNoPost-render integrated-loudness tolerance (default: 1 LU)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
max_true_peak_dbfsNoTrue-peak ceiling from -9 through 0 dBFS (default: -1.5)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: the render-measure-rerender loop, the AAC true-peak rationale for retries, best-attempt retention, per-attempt I/TP reporting, and the guarantee that neither the input nor an existing output is overwritten. This fills in exactly the class of detail destructiveHint=false and idempotentHint=false cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action, then the correction behavior, then the non-destructive guarantee. No filler and every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be described, and the description covers the mutation and retry semantics well. The remaining gap is that the two identity-guard parameters (expected_cep_target, expected_project_path) get no mention, which for a 9-parameter tool with nested objects leaves the agent to discover their gating behavior from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description goes further by explaining that max_attempts bounds a correction loop and that the ceiling or target is adjusted between attempts, which gives semantic meaning beyond the field descriptions. It says nothing about the CEP guard parameters or idempotency_key, but those are already heavily documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific verbs and a concrete artifact: create a loudness-normalized media derivative with FFmpeg, then remeasure with EBU R128. This is unmistakably distinct from measurement-only siblings such as analyze_loudness, and the retry-on-miss clause further pins down what the tool uniquely does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose (you want a normalized output file, not just a measurement) and by the note that it never overwrites the input, but no alternative is named and there is no explicit when-not-to-use guidance. An agent must infer that analyze_loudness is the right tool when only measurement is wanted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_in_sourceOpen In SourceB

Open a project item in the Source Monitor for preview and trimming, and confirm it is the clip now showing.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item to open
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), and the description adds a real behavioral trait: the tool verifies the opened clip is the one now showing, so the agent can trust the post-state. However it never says what happens to a previously loaded source clip, nor that the expected_cep_target/expected_project_path guards are checked and can refuse before acting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the action front-loaded and zero filler; the trailing confirmation clause adds real information rather than padding. Slightly ambiguous phrasing ('confirm it is the clip now showing') costs it the top mark.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full schema coverage on four parameters including nested guard objects, the description only needs purpose and post-condition, both of which it supplies. The remaining gap is the preflight-refusal behavior of the optional guards, which the schema itself covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so item_id, idempotency_key, expected_cep_target, and expected_project_path are all richly documented in the schema. The description adds no parameter-level meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource+destination: 'Open a project item in the Source Monitor', with the effect stated (preview and trimming) and a post-condition ('confirm it is the clip now showing'). It is distinguishable from siblings such as select_item, match_frame, or get_source_monitor_info, though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'for preview and trimming' hints at intent but gives no explicit when-to-use guidance and no alternatives or exclusions (e.g., versus match_frame or select_item, or when a source clip is already open in the monitor). An agent must infer the routing decision from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_projectOpen ProjectA

Open a Premiere Pro project file and make it the active project, verifying it is open. Other open projects stay open.

NameRequiredDescriptionDefault
pathYesFull file path to the .prproj file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish that this is a non-read-only, non-destructive, non-idempotent operation. The description adds useful behavior beyond that by stating it verifies the project is open and leaves other open projects open, but it does not explain error cases, already-open projects, unsaved changes, or the role of idempotency handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences, front-loads the core action, and every clause adds useful meaning. There is no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For the core operation, the description is complete: it says what gets opened, that it becomes active, that it is verified, and that other projects remain open. The richer optional guard and idempotency behavior is left to the very detailed schema, which is acceptable given the high schema coverage and the presence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already well documented in the schema, including the complex optional guard and idempotency fields. The description does not add any parameter-specific semantics beyond the schema, which is the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: it opens a Premiere Pro project file and makes it active. It also states a postcondition (verifying it is open) and clarifies that other open projects remain open, which distinguishes it from create/close/save project operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this to open an existing .prproj and switch the active project. It does not explicitly name alternatives such as create_project or close_project, and it does not describe when not to use it, so it falls short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

overwrite_clipOverwrite ClipB

Overwrite a project item onto validated timeline tracks and verify a new source placement at the requested time. Every video/audio stream the item actually has must land on the requested tracks; a picture-only or sound-only placement (for example 5.1 audio that does not fit a stereo track) is committed_unverified, not verified. Video-only and audio-only items overwrite only the receiving track, so Sequence.overwriteClip cannot smash V0 or A0 for the unused kind.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item to add
track_indexNoVideo track index (0-based, default: 0)
start_secondsNoStart time in seconds on the timeline (default: 0)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
audio_track_indexNoAudio track index (0-based, default: 0), or "auto_empty" to use the lowest audio track with no clip in the placement range (for example when overwriting a nested sequence above existing music). auto_empty refuses, changing nothing, when every audio track is occupied there.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial non-annotated behavior: the outcome distinction between verified and committed_unverified, the rule that every stream must land on its requested track, and the documented Sequence.overwriteClip limitation for unused track kinds. It does not, however, state what existing clips in the placement range are replaced or removed, which is conspicuous next to destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action and then the verification contract; little filler. The final sentence ('cannot smash V0 or A0 for the unused kind') is jargon-heavy and takes effort to parse, which costs a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need not be explained, and the verification semantics are covered. Missing for a 7-parameter mutation tool is any guidance on choosing tracks, the meaning of auto_empty in the flow, idempotency expectations, or when to prefer a sibling edit tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including a rich idempotency_key explanation and the auto_empty audio_track_index mode, so the schema carries parameter semantics. The description mentions none of the parameters (item_id, track_index, audio_track_index, start_seconds) and only obliquely gestures at track landing, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: overwrite a project item onto validated timeline tracks at a requested time, plus a verification step. It is clear what the tool does, but it never names or distinguishes itself from near neighbors such as add_to_timeline, overwrite_from_source, or replace_clip, so sibling disambiguation is left to the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no alternative named, and no prerequisites (target track selection, sequence must be active, item must be a project item). The discussion of video-only/audio-only items explains a behavioral edge case rather than when an agent should pick this tool over add_to_timeline or overwrite_from_source.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

overwrite_from_sourceOverwrite From SourceA

Overwrite the clip from the Source Monitor at the playhead position (overwrite edit — replaces existing clips) and verify a new placement on the requested tracks. Every video/audio stream the Source Monitor item actually has must land on those tracks; a picture-only or sound-only placement is committed_unverified, not verified. Video-only and audio-only items overwrite only the receiving track, so Sequence.overwriteClip cannot smash V0 or A0 for the unused kind.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
audio_track_indexNoTarget audio track index (default: 0)
video_track_indexNoTarget video track index (default: 0)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description provides useful behavioral detail about verification, stream coverage, and track behavior, but it directly conflicts with the annotation destructiveHint=false by stating that the overwrite edit 'replaces existing clips.' That is a destructive operation, so the annotation contradiction is serious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded, only a few sentences, and each sentence adds relevant behavioral detail. It is dense with editing terminology but not bloated or repetitive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich input schema, output schema, and annotations present, the description covers the core operational behavior, verification requirement, and track constraints. It leaves some edge cases and idempotency/guard-parameter semantics to the schema, which is acceptable given the structured context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful track semantics beyond the schema, especially that every source stream must land on the requested video/audio tracks and that audio-only/video-only items affect only the receiving track.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: overwrites the clip from the Source Monitor at the playhead position, with overwrite semantics and track verification. This clearly distinguishes it from source insertion or timeline-add operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the Source Monitor/playhead context and the overwrite edit behavior, but the description does not explicitly name alternatives such as insert_from_source, overwrite_clip, or add_to_timeline, nor when-not 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.

paste_clip_attributesPaste Clip AttributesA

Paste Attributes for one timeline clip: copy the source clip's effect stack (Motion, Opacity, other intrinsic components, and every applied effect) onto a target clip of the same track type, including keyframes. Components are matched by match name and occurrence; a missing non-intrinsic effect is applied through the experimental legacy QE DOM (disable with apply_missing_effects=false). Every written parameter and keyframe value is read back and reported per property as verified, committed_unverified, or failed, with an overall status. Not copied, and listed in notCopied with a reason: parameters whose values ExtendScript cannot read as numbers, booleans, strings, or numeric arrays; Opacity > Blend Mode when it differs (legacy cross-clip enum writes can corrupt it; use set_blend_mode and verify); and keyframe interpolation (no getter exists, so pasted keys use Premiere's default interpolation). MASKS ARE NOT COPIED: neither ExtendScript, QE, nor documented Premiere UXP exposes mask shapes, paths, feather, expansion, or mask keyframes, and masks are invisible to this bridge, so recreate or paste masks manually in Effect Controls. Time Remapping is excluded unless named in components.

NameRequiredDescriptionDefault
componentsNoOptional component display names or match names to copy (for example ['Motion', 'Opacity', 'Gaussian Blur']). Omit to copy every source component except Time Remapping.
copy_keyframesNoCopy keyframes of animated source properties (default true). Key times keep their offset from each clip's in point. When false, animated source properties are reported in notCopied and left unchanged on the target.
source_node_idYesNode ID of the source timeline clip in the active sequence whose attributes are copied
target_node_idYesNode ID of the target timeline clip in the active sequence that receives the attributes; must be on the same track type (video or audio) as the source
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
apply_missing_effectsNoApply source effects that the target lacks through the experimental legacy QE DOM before copying values (default true). When false, missing effects are reported in notCopied.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only carry the safety hints, and the description goes far beyond them: it discloses the experimental QE DOM path for missing effects, the per-property verification states (verified/committed_unverified/failed) with an overall status, the notCopied reasons including unreadable value types and cross-clip enum corruption risk, lost keyframe interrogation, and the hard MASKS ARE NOT COPIED limitation with the workaround. This is exactly the behavioral context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, and every caveat is substantive rather than filler. But it is a single dense run-on block with the mask and notCopied caveats buried in mid-sentence clauses, so an agent skimming may miss the critical 'masks are not copied' restriction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with nested guard objects, an output schema and non-obvious host limitations, the description covers what is written, what is skipped and why, how results are reported, and the mask blind spot. Nothing an agent needs before calling it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, and the description adds real meaning on top: omitting components copies everything except Time Remapping, and apply_missing_effects=false diverts missing effects into notCopied. The remaining parameters (node IDs, idempotency_key, expected_cep_target, expected_project_path) are left entirely to their already-detailed schema entries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Paste Attributes for one timeline clip') and enumerates exactly what is transferred: effect stack, intrinsic components, applied effects, keyframes. An agent can tell it is a write-side counterpart to inspection tools, but it never names the closest siblings (copy_effects_between_clips, copy_effect_values, apply_effect), so the boundary with those is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete conditional guidance: disable missing-effect application with apply_missing_effects=false, use set_blend_mode instead of pasting Blend Mode, recreate masks manually, name Time Remapping in components to include it. Good when/how-not coverage, but no explicit 'use this instead of tool X' routing among the similar copy/apply tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingPingA

Health check — verify the CEP plugin is running and connected to Premiere Pro. Call this before other tools to confirm connectivity.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that the check confirms both the CEP plugin process and its Premiere connection plus the precondition ordering, which is real value. It does not explain the readOnlyHint=false / idempotentHint=false annotations, which are counterintuitive for a pure health check and leave the agent slightly uncertain whether calling it has 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the purpose and followed by the actionable instruction. No filler, no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists (the likely pong/status payload), so return values need not be explained, and the description covers purpose and timing. The missing piece is relationship to the near-duplicate sibling verify_premiere_connection, which an agent in this large toolset genuinely needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Two optional parameters with 100% schema description coverage, so the baseline applies and the schema does the work. The description says nothing about why a ping accepts expected_cep_target/expected_project_path guards, which is semantically surprising for a connectivity check, but no compensation is strictly required at full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: "Health check — verify the CEP plugin is running and connected to Premiere Pro." An agent knows exactly what the tool does. However, the sibling set contains verify_premiere_connection (and get_capabilities, get_version_info) and the description never says how ping differs from those, which is the main clarity gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Call this before other tools to confirm connectivity" gives explicit positive guidance about when to invoke it, which is rare and useful. It gives no exclusions (e.g. when to skip it and use verify_premiere_connection instead), so it stops 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.

plan_active_speaker_reframePlan Active Speaker ReframeA
Read-onlyIdempotent

Plan an active-speaker vertical reframe (Motion Scale/Position keyframes that follow whoever is talking) or a static stacked/split layout from a word timeline and static speaker regions. Returns framings, switches, keyframes, and apply routes. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
layoutNoauto (default) picks active_speaker for 3+ speakers or a region wider than 0.6, stacked for exactly 2 speakers.
headroomNoFraction of the crop height reserved above the region top; defaults to 0.12.
frame_rateNoSequence frame rate used to snap times to frames; defaults to 30.
ease_framesNoFrames to ease each switch with bezier keyframes; 0 (default) emits hold keyframes (hard cuts).
source_frameYesSource clip frame size in pixels, e.g. 1920x1080 or 3840x2160.
target_frameNoTarget sequence frame size in pixels; defaults to 1080x1920.
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
speaker_regionsYesNormalized (0..1) face/body rectangle of every speaker that appears, measured in the source frame.
min_hold_secondsNoNever switch faster than this; shorter turns are absorbed. Defaults to 1.5.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
switch_lead_secondsNoSwitch this long before the speaker starts; defaults to 0.15.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
base_video_track_indexNoVideo track holding the source clip in the target sequence; defaults to 0.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so safety is largely covered. The description usefully reinforces 'Local-only; never changes Premiere' and reveals that the output includes apply routes, but adds nothing about validation failures, timeline/revision checks, or determinism guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose and modes first, outputs second, side-effect guarantee last. Nothing is repeated and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description needn't explain return values, and it correctly focuses on scope, inputs, and non-mutation. Given 13 parameters and the transcript-revision binding constraint, a sentence pointing at prerequisites (transcript revision from get_clip_transcript_uxp) would close the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter, including layout's auto-selection rule and the speaker_regions normalization, is already documented. The description only restates the two headline inputs (word timeline, speaker regions) and the layout dichotomy, adding little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Plan an active-speaker vertical reframe ... or a static stacked/split layout') and sketches the concrete output (Motion Scale/Position keyframes, stacked/split layout). It does not name the near neighbours it competes with (auto_reframe_sequence, plan_speaker_checkerboard, compute_mask_fit_motion), so sibling differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear preconditions for use (from a word timeline plus static speaker regions) and clarifies that this is a planning-only call whose output feeds an apply route. No explicit when-not-use or named alternatives, so it stops 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.

plan_audio_post_turnoverPlan Audio Post TurnoverA
Read-onlyIdempotent

Preview a bounded AAF/OMF audio-post turnover contract: exact exclusive range, handles, rational rate, channels, requested gain automation, media hashes and reference picture. Routes to existing native exporters. Caller manifests and exporter settings are not DAW acceptance or audible-alignment proof.

NameRequiredDescriptionDefault
rateYesExact rational frames per second; e.g. 30000/1001.
mediaYesReviewed media manifest; fields remain caller evidence until file readback.
rangeYesRequested exclusive timeline range
formatYesExisting native Premiere interchange exporter to review.
sample_rateYesRequested audio-post sample rate.
sequence_idYesExact reviewed sequence identity.
handle_framesYesRequested media handles in sequence frames; verify source availability separately.
channel_mappingYesReviewed per-track channel mapping, which may require rendering unsupported host layouts.
gain_automationYesDeclare requested gain handling and retain unsupported state.
reference_pictureNoOptional reviewed reference-picture artifact ID/filename; verify its conformance separately.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/non-destructive, so the bar is lower, but the description still adds real value: it discloses that it only routes to existing native exporters and, importantly, that caller manifests and exporter settings are not DAW acceptance or audible-alignment proof — a meaningful caveat about the limits of the result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with the core action and scope, followed by a caveat. Every clause carries information, though the jargon-heavy phrasing and the slightly ambiguous 'routes to existing native exporters' could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-param, 9-required planning tool with a rich output schema and full annotation coverage, the description sets purpose and limits adequately. The one gap is the mild ambiguity around whether 'routes to existing native exporters' implies execution, given readOnlyHint=true.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and nested objects (rate, range, media, channel_mapping) are fully documented in the schema. The description lists the categories the contract covers but adds no syntax or format detail beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Preview/plan) and concrete resource (bounded AAF/OMF audio-post turnover contract), then enumerates the scope it covers: range, handles, rational rate, channels, gain automation, media hashes, reference picture. 'Routes to existing native exporters' distinguishes it from the execute siblings (export_aaf, export_omf) without needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'Preview' plus 'Routes to existing native exporters' implies this is a planning step preceding an actual export, but the description never states when to use it versus export_aaf/export_omf, nor any explicit 'do not use for actual export' exclusion. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_beat_montagePlan Beat MontageA
Read-onlyIdempotent

Plan a beat-synced montage: carve a detect_beats grid into shots every N beats (merging short and splitting long spans), assign clips in order, and emit add_to_timeline_batch chunks, trim ranges, and cut markers. Local-only and deterministic; never changes Premiere.

NameRequiredDescriptionDefault
clipsYesSource clips available for the montage, in the caller's preferred order.
orderNoClip assignment order; defaults to as_given. round_robin interleaves priority groups.
frame_rateNoSequence frame rate used to snap shot boundaries; defaults to 30.
allow_reuseNoWhen true, cycle through clips again once they run out (continuing from where each stopped); otherwise the montage stops.
beat_secondsYesStrictly ascending beat times in sequence seconds, such as beatTimesSeconds from detect_beats.
max_shot_secondsNoLonger spans split at intermediate beats; defaults to 6.
min_shot_secondsNoShorter spans merge with the next beats; defaults to 0.4.
start_beat_indexNoIndex of the first beat to cut on; defaults to 0.
audio_track_indexNoTarget audio track for linked audio; defaults to 0.
cut_every_n_beatsNoBeats per shot; defaults to 2.
video_track_indexNoTarget video track for every placement; defaults to 0.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
total_duration_secondsNoOptional cap on montage length measured from the first cut.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false; the description adds the non-obvious facts that the tool is local-only, deterministic, and never mutates Premiere. That is genuine added context rather than a restatement. It does not discuss failure modes (e.g., what happens if the grid is too short for the clips), which keeps it at 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence that front-loads the purpose and enumerates the algorithm stages, followed by a short safety clause. No filler and nothing an agent would need buried later.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't document return values, and 100% schema coverage handles the 14 parameters including the nested expected_cep_target guard. What remains thin is the interaction between allow_reuse, order, and total_duration_seconds, which the description never touches.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description meaningfully maps behavior onto parameters: 'shot every N beats' → cut_every_n_beats, 'merging short / splitting long spans' → min_shot_seconds and max_shot_seconds, 'assign clips in order' → order. That is real added understanding beyond the field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Plan') plus resource ('beat-synced montage'), with the concrete pipeline spelled out: carve a detect_beats grid into shots, assign clips, emit add_to_timeline_batch chunks, trim ranges, and cut markers. That distinguishes it from detect_beats (analysis input) and add_to_timeline_batch (execution) without the agent needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names detect_beats as the upstream source of the beat grid and add_to_timeline_batch as where the emitted chunks go, so the agent can place this tool in the workflow. It stops short of explicit exclusions or of saying when *not* to plan a montage, so no 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_chapter_markersPlan Chapter MarkersA
Read-onlyIdempotent

Plan YouTube-style chapters from a word-timed transcript using local TextTiling-lite topic-shift detection, titling each chapter from its distinctive tokens. Returns chapters, a youtube_timestamps block and add_marker-ready Chapter markers. Local-only plan; never changes Premiere.

NameRequiredDescriptionDefault
frame_rateNoFrame rate used to snap start/end frames; defaults to 30.
stop_wordsNoExtra stop words removed before similarity and titling.
block_wordsNoApproximate words compared on each side of a sentence gap; defaults to 60.
title_wordsNoMaximum words in each generated chapter name; defaults to 4.
max_chaptersNoMaximum number of chapters; deepest topic valleys win. Defaults to 12.
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
min_chapter_secondsNoMinimum chapter duration in seconds; defaults to 90.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and local behavior, and the description adds concrete detail: TextTiling-lite topic-shift detection, distinctive-token titling, and the exact output blocks. It reinforces that no Premiere state is modified, though it leaves transcript-size limits and revision prerequisites to 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and then output and locality. Every sentence adds useful information with no boilerplate or wasted phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 9-parameter analysis tool, the description covers purpose, algorithm, output shape, and non-mutation. The schema and output schema carry the parameter and return details, though the description does not call out the get_clip_transcript_uxp revision prerequisite or word-timeline ordering constraints; those omissions are minor given full schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents word_timeline, frame_rate, max_chapters, and the other controls. The description adds no parameter-specific meaning beyond referring to a word-timed transcript and listing output blocks, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: planning YouTube-style chapters from a word-timed transcript. It names the algorithm, titling behavior, and outputs, and distinguishes itself from actual marker-writing siblings by clarifying it is a local-only plan that never changes Premiere.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes the applicable context: generating a local chapter plan from a supplied transcript, with add_marker-ready output for a later mutation step. It does not explicitly name alternatives like add_marker or add_markers_batch or state when not to use it, so 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.

plan_client_notes_checklistPlan Client Notes ChecklistA
Read-onlyIdempotent

Turn pasted client or reviewer feedback into a prioritized checklist: finds timecodes and ranges, classifies each note (audio, color, graphics, text, timing, cut, legal, delivery), infers must/should/nice priority, separates approvals and questions, and emits an add_markers_batch payload. Local-only and deterministic; never changes Premiere.

NameRequiredDescriptionDefault
notesYesFree-text feedback (email, chat, review-tool export). One note per line works best; bullets, 'Name:' prefixes, mm:ss, hh:mm:ss, hh:mm:ss:ff, 1m23s, and ranges like 1:23-1:30 are understood.
max_itemsNoMaximum checklist items to produce (default 200).
frame_rateNoSequence frame rate used to snap marker times and read ff fields; defaults to 30.
timecode_styleNoHow a three-part a:b:c value is read: auto (default), clock (hh:mm:ss), or frames (mm:ss:ff).
marker_color_modeNoMarker color by priority (default: must=red, should=orange, nice=green), by category, or one fixed color.
fixed_marker_colorNoColor index used when marker_color_mode is fixed (default 3 = orange).
marker_name_prefixNoOptional prefix for every marker name, such as a round label like 'R2'.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
sequence_duration_secondsNoOptional sequence duration; notes past it are kept in the checklist but get no marker.
include_approvals_as_markersNoAlso create markers for approval notes (default false).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered structurally. The description still adds real value by stating the tool is 'local-only' (no host round-trip), 'deterministic', and that it only emits a payload rather than touching Premiere. Minor redundancy with the annotations, but the local-only guarantee is beyond what they express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the core transformation and then lists the pipeline stages, followed by a short scope clause. Dense but every clause carries information; slightly long for one sentence, which costs it the top mark.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return format need not be described, and all 11 parameters are fully documented in-schema. Given the tool's complexity, the description covers what it consumes, what it produces, and its non-mutating scope — everything an agent needs to select and call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (including the nested expected_cep_target guard) is documented in-schema, so the baseline of 3 applies. The description adds no parameter-level semantics of its own — no mention of timecode_style, max_items, or marker_color_mode behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource ('Turn pasted client or reviewer feedback into a prioritized checklist'), and it enumerates the transformations performed (timecode extraction, classification, priority inference, approvals/questions separation). The final clause 'emits an add_markers_batch payload' implicitly distinguishes it from the neighboring add_markers_batch mutation tool by showing this one plans rather than applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly frames the input situation (pasted email/chat/review-tool feedback) and states the boundary 'Local-only and deterministic; never changes Premiere', which tells an agent this is a safe planning step. It stops short of explicitly saying 'call add_markers_batch afterwards to apply', leaving the composition step to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_cross_app_workflowPlan Cross App WorkflowA
Read-onlyIdempotent

Plan an After Effects MOGRT or rendered-file handoff to Premiere using existing tools. Returns ordered dependencies, separate approvals, required evidence, and manual render stops. Local-only planning; never executes steps, issues approval tokens, or claims host readiness.

NameRequiredDescriptionDefault
workflowYesSupported After Effects to Premiere handoff to plan.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds meaningful context beyond that: it returns ordered dependencies, separate approvals, required evidence, and manual render stops, and explicitly disclaims execution, approval issuance, and host-readiness claims.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly written sentences, front-loaded with the action and scope. Each sentence contributes distinct information about outputs, limitations, and non-execution guarantees.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema, output schema, and annotations, the description is complete enough for planning use. It covers purpose, non-execution boundaries, and the kinds of planning artifacts returned without needing to repeat schema details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains the parameters thoroughly. The description only maps the two workflow choices to MOGRT versus rendered-file handoff and does not add further semantics for the nested CEP/project-path guards.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: plan an After Effects MOGRT or rendered-file handoff to Premiere. It also scopes the tool as local-only planning that never executes, which distinguishes it from execution-oriented siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly says this is local-only planning and never executes steps, issues approval tokens, or claims host readiness, giving strong when-not guidance. However, it does not explicitly name alternatives such as preview/apply handoff tools, so the routing is clear but not fully spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_emphasis_zoom_keyframesPlan Emphasis Zoom KeyframesA
Read-onlyIdempotent

Plan CapCut-style punch-in zoom keyframes (Motion Scale + subject-anchored Position) from a word timeline or supplied trigger times, with cooldown, easing, and hold controls. Local-only and deterministic; returns a keyframe plan for automate_effect_parameters_uxp or add_keyframe and never changes Premiere.

NameRequiredDescriptionDefault
frameNoSequence frame size in pixels; defaults to 1080x1920.
triggerNoTrigger mode. Defaults to sentence_start with word_timeline and supplied with trigger_seconds.
alternateNoWhen true, triggers alternate between a punch-in that stays zoomed and a punch-out back to base instead of every trigger zooming and returning.
max_zoomsNoMaximum accepted zoom events; defaults to 120.
base_scaleNoResting Motion Scale percent; defaults to 100.
frame_rateNoSequence frame rate used to snap keyframe times; defaults to 30.
zoom_scaleNoPeak Motion Scale percent for each punch-in; defaults to 112 and must exceed base_scale.
hold_secondsNoSeconds to hold the zoomed scale before easing out; defaults to 1.2.
subject_pointNoNormalized (0..1) subject location the zoom should stay anchored on; defaults to x 0.5, y 0.4 for talking heads.
word_timelineNoCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
ease_in_framesNoFrames to ramp from base to zoom (0 = instant cut zoom); defaults to 3.
emphasis_wordsNoWords or short phrases that trigger a zoom in emphasis_words mode (case and punctuation insensitive).
ease_out_framesNoFrames to ramp back to base (0 = instant); defaults to 6.
every_n_secondsNoTrigger interval for every_n_seconds mode, measured from the start of the word timeline.
trigger_secondsNoClip-relative trigger times in seconds; use instead of word_timeline (exactly one is required).
cooldown_secondsNoMinimum spacing between accepted triggers; closer triggers are dropped with a warning. Defaults to 2.5.
clip_start_secondsNoTimeline offset of the clip; added to produce timeline_seconds on every keyframe. Defaults to 0.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish read-only, idempotent, non-destructive, and closed-world behavior. The description adds that the tool is local-only and deterministic, and clarifies that it returns a plan for downstream consumers rather than mutating the project, which meaningfully extends what the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly constructed sentences front-load the purpose and then deliver behavioral context with no wasted words. Every clause carries information relevant to selecting and invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema, output schema, and annotations, the description is complete enough: it covers what the tool does, its inputs, its output (a keyframe plan), its intended downstream consumers, and the critical non-mutation guarantee. Return-value details are covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already fully documents all 19 parameters, including cooldown, easing, and hold controls. The description mentions these concepts but adds no syntax, defaults, or interaction details beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Plan) and a specific resource (CapCut-style punch-in zoom keyframes), explaining the exact output: Motion Scale + subject-anchored Position keyframes from a word timeline or trigger times. This clearly distinguishes it from execution tools like add_keyframe.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the alternative consumers (automate_effect_parameters_uxp or add_keyframe) and makes clear this is the planning step that never changes Premiere, giving strong implied guidance on when to use it. However, it does not explicitly state when not to use it or compare against other planning tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_filler_word_removalPlan Filler Word RemovalA
Read-onlyIdempotent

Plan word-level filler removal (um, uh, you know...) from a revision-bound word timeline. Hesitation-sound removal requires a transcript that preserves disfluencies, such as Premiere transcription or verbatim ASR; Whisper's default output omits them. Returns frame-snapped removal and keep ranges plus apply routes. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
frame_rateNoTimebase used to snap ranges to whole frames; defaults to 30.
filler_wordsNoFiller words or multi-word phrases to remove (matched as consecutive normalized tokens). Defaults to: um, uh, er, ah, hmm, you know, i mean, sort of, kind of. 'like' is only removed when listed explicitly.
max_removalsNoMaximum merged removals to return; defaults to 256.
handle_framesNoFrames of handle left inside each removal so cuts are not tight; defaults to 1.
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
min_confidenceNoOptional: only remove fillers whose every word carries a confidence at or above this value.
merge_gap_secondsNoRemovals separated by less than this are merged into one cut; defaults to 0.15.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds meaningful context beyond that: it is local-only, never changes Premiere, returns frame-snapped removal and keep ranges plus apply routes, and depends on a disfluency-preserving transcript.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose first, then the critical transcript prerequisite, then return and safety behavior. Every sentence adds useful information with no repetition or waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema, full schema descriptions, and strong annotations, the description covers the remaining agent-critical context: what it plans, the transcript prerequisite, that output includes removal/keep ranges and apply routes, and that it is local-only and non-mutating.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all nine parameters in detail. The description adds the important concept that the word timeline is revision-bound and must come from a disfluency-preserving transcript, but it does not add syntax or field-level semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: planning word-level filler removal from a revision-bound word timeline, with examples (um, uh, you know). It clearly distinguishes planning from mutation by saying it returns removal/keep ranges and apply routes rather than changing Premiere.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear prerequisite: the transcript must preserve disfluencies, such as Premiere transcription or verbatim ASR, because Whisper's default output omits them. It does not explicitly compare against close siblings like plan_word_mute_ranges or plan_pause_tightening, so it falls short of full when/when-not/alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_media_synchronizationPlan Media SynchronizationA
Read-onlyIdempotent

Plan synchronization locally from bounded normalized mono PCM correlation or caller-matched marker/timecode tick anchors. Returns confidence, ambiguous alternatives or silent/noise refusal. Placement offset application is separately reviewed.

NameRequiredDescriptionDefault
methodYesEvidence method.
sample_rateNoAudio sample rate.
candidate_ticksNoMatched candidate anchors.
max_lag_samplesNoSearch lag; work capped at2000000 comparisons.
reference_ticksNoMatched reference anchors.
candidate_samplesNoCandidate normalized mono samples for audio method.
reference_samplesNoReference normalized mono samples for audio method.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/non-destructive, yet the description adds real value: the computation happens locally, inputs are 'bounded', and the tool can refuse with 'silent/noise refusal' or return ambiguous alternatives or a confidence value. That refusal behavior and the plan-vs-apply split are not derivable from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action and evidence sources, then return shape, then scope boundary. Dense jargon ('caller-matched marker/timecode tick anchors') costs a little readability but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the return values needn't be spelled out, and the description nonetheless names confidence/ambiguity/refusal. For a 9-parameter tool with nested objects, the only real omission is that the description doesn't hint at the expected_project_path / expected_cep_target guard semantics, which live only in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all nine parameters (including the nested expected_cep_target guard) are already documented. The description only echoes the audio/mono/normalized framing and adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (plan) and resource (media synchronization) plus the two evidence sources it supports: bounded normalized mono PCM correlation or caller-matched marker/timecode tick anchors. This is far more specific than the title, though it doesn't name a sibling it is distinct from (e.g., review_sync_evidence, detect_audio_transients), which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The two methods (audio vs anchors) imply when each applies, and 'Placement offset application is separately reviewed' signals this tool plans rather than applies. However, no sibling alternative is named and no explicit condition is given for choosing the audio path over the anchors path beyond the method enum itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_multicam_angle_switchesPlan Multicam Angle SwitchesA
Read-onlyIdempotent

Plan active-speaker camera switching for stacked, synced camera tracks: from speaker segments and a camera-to-speaker map it produces an angle cut list with minimum holds, crosstalk cover shots, optional lead-in cuts and periodic cutaways, plus razor times, per-camera enable/disable ranges, and markers. Local-only and deterministic; never changes Premiere.

NameRequiredDescriptionDefault
camerasYesCamera angles. A camera with one speaker is a single, two or more is a two_shot, none is a wide cover unless role says otherwise.
frame_rateNoSequence frame rate for snapping cut points; defaults to 30.
marker_colorNoMarker color index for the cut markers (default 6 = blue).
start_secondsNoPlan start in sequence seconds (default 0).
cutaway_secondsNoLength of each cutaway (default 2.5; must be at least min_hold_seconds).
cover_on_overlapNoCut to a two_shot or wide camera when speakers overlap (default true).
min_hold_secondsNoMinimum time an angle stays on air; shorter changes are absorbed (default 2).
speaker_segmentsYesWho is speaking when, in sequence seconds (from a transcript, diarization, or plan_speaker_checkerboard turns). Overlaps are allowed.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
lead_switch_secondsNoCut to the incoming speaker this many seconds before they start, when the outgoing hold allows (default 0).
overlap_min_secondsNoMinimum crosstalk length before the cover shot is used (default 0.6).
cutaway_every_secondsNoInsert a cover cutaway during monologues longer than this many seconds (default: none).
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
total_duration_secondsNoPlan end in sequence seconds (default: last segment end).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and destructiveHint=false, so 'never changes Premiere' adds little, but 'Local-only and deterministic' adds real context beyond annotations — no host round-trip and repeatable output. It also discloses the produced artifacts, which the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the purpose followed by outputs and the local-only guarantee; no filler. The output enumeration is long but each item is informative, so only minor density cost.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, nested-schema, output-schema-backed planning tool, the description covers purpose, input sources, output artifacts, and the non-mutating guarantee. The identity/guard parameters (expected_cep_target, expected_project_path) are fully documented in the schema, so leaving them out of the description is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description names behavioral concepts (minimum holds, crosstalk cover shots, lead-in cuts, periodic cutaways) that map loosely to min_hold_seconds, overlap_min_seconds, lead_switch_seconds, and cutaway_every_seconds, but adds no defaults or constraint detail beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Plan active-speaker camera switching for stacked, synced camera tracks') and enumerates concrete outputs (angle cut list, razor times, enable/disable ranges, markers), which separates it from mutating siblings. It does not name the closest alternatives (preview_stacked_camera_edit, apply_stacked_camera_edit), so differentiation is inferred rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by describing required inputs ('from speaker segments and a camera-to-speaker map') and by declaring it local-only and deterministic. There is no explicit when-to-use/when-not guidance and no pointer to the apply/preview siblings that would consume this plan.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_music_remixPlan Music RemixA
Read-onlyIdempotent

Plan deterministic music shortening from an approved measured beat grid, protected intro/outro and crossfade handles. Returns exact segments and nearest-beat error for audible review. No DSP render or native Premiere Remix control.

NameRequiredDescriptionDefault
planYesStrict remix input: beats_ticks, source_duration_ticks, target_duration_ticks, protected_intro_ticks, protected_outro_ticks, optionalcrossfade_ticks, signal_classification music/silence/noise.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description reinforces the planning-only nature by explicitly disclaiming DSP rendering and native Premiere Remix control. It adds genuine behavioral context by stating the output is exact segments plus a nearest-beat error intended for audible review, which tells the agent this is a verifiable, human-checkable plan rather than a mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, none padded: the action and inputs come first, the return contract second, and the capability exclusion last. Every sentence carries distinct information and there is no restatement of the title or name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only planning tool with an output schema and a fully documented nested input, the description covers the essential behavior and its boundaries. What remains unstated is how the plan is consumed downstream (which apply/execution tool takes these segments) and what makes a beat grid 'approved', leaving a small integration gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the nested plan fields (beats_ticks, protected_intro_ticks, optionalcrossfade_ticks, signal_classification) are already documented. The description echoes those concepts in prose but adds no format, unit, or constraint detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Plan') plus the exact resource ('deterministic music shortening') and enumerates the inputs it consumes: an approved measured beat grid, protected intro/outro, and crossfade handles. The final clause distinguishes it from a renderer, so an agent can tell it apart from execution tools like speed_change or apply_edit_plan, though no sibling is named directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'From an approved measured beat grid' implies a prerequisite (a prior, reviewed beat-detection step) without naming detect_beats or the approval workflow. The 'No DSP render or native Premiere Remix control' line usefully scopes when the tool does not apply, but it stops short of routing the agent to whatever tool actually applies the plan.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_pause_tighteningPlan Pause TighteningA
Read-onlyIdempotent

Plan shortening (not deleting) of inter-word pauses longer than max_pause_seconds down to a target, respecting sentence boundaries. Returns centered removal ranges, keep ranges, savings and apply routes. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
max_editsNoMaximum pauses to tighten (longest first when capped); defaults to 256.
frame_rateNoTimebase used to snap ranges to whole frames; defaults to 30.
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
max_pause_secondsNoPauses longer than this are tightened; defaults to 1.0.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
target_pause_secondsNoPause length kept after tightening (split evenly around the cut); defaults to 0.35 and must not exceed max_pause_seconds.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
sentence_pause_secondsNoPause length kept after sentence-ending punctuation; defaults to 0.6.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, so the safety profile is covered; the description usefully reinforces this with "Local-only; never changes Premiere" and adds a real behavioral rule — sentence-ending pauses are preserved via sentence boundaries rather than tightened uniformly. It also discloses the return payload shape (removal ranges, keep ranges, savings, apply routes) rather than leaving the agent to guess.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the verb and the scope constraint, then the return contents, then the safety note. Every clause carries information an agent would otherwise have to infer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema and rich annotations, the description covers purpose, non-mutation, and return shape adequately. The remaining gap is procedural: it does not say which tool applies the returned apply routes, nor that the word_timeline must come from get_clip_transcript_uxp (that dependency lives only in the schema field descriptions).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 schema already spells out max_pause_seconds, target_pause_seconds (split evenly around the cut), sentence_pause_seconds and the max_edits/frame_rate defaults. The description reinforces the threshold/target distinction and the sentence-boundary semantics but adds no guidance on max_edits, frame_rate, or the expected_cep_target guard object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("Plan shortening of inter-word pauses") and bounds it precisely ("longer than max_pause_seconds down to a target"). The parenthetical "(not deleting)" preempts confusion with removal-oriented siblings such as plan_filler_word_removal or plan_word_mute_ranges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: "Returns ... apply routes" suggests this is a planning step that precedes an apply step, and "never changes Premiere" hints at a preview-only role. It never names an alternative tool or states a when-not condition, so the agent must infer where this fits against detect_silence, plan_word_mute_ranges, or ripple_remove_timeline_ranges.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_platform_delivery_matrixPlan Platform Delivery MatrixA
Read-onlyIdempotent

Plan multi-ratio delivery of one source sequence to TikTok, Reels, Shorts, YouTube, LinkedIn, X, and Facebook from a local spec table: sequence settings, reframe scale math, duration and file-size fit, caption safe zones, and ordered apply routes. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
sourceYesSource sequence characteristics.
targetsYesUnique platform ids to plan for.
strategyNoReframe strategy when the aspect ratio changes; defaults to auto_reframe.
export_preset_hintNoOptional export preset name to echo into the export step.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive, and the description reinforces this with 'Local-only; never changes Premiere' plus the fact that output is a plan with 'ordered apply routes' — useful context about what the agent receives. It stops short of stating that no host state is inspected or that repeated calls are deterministic, but the key safety profile is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with the action and platform targets, then the local-only constraint. The mid-sentence list of computed outputs is long but each item maps to a distinct planning concern, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema covering return values, rich annotations, and complete parameter documentation, the description supplies what's missing: scope, platform set, and the non-mutating guarantee. For a 6-parameter tool with deep nested guard objects, one could ask for a sentence on when expected_cep_target matters, but that is adequately handled in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including the nested CEP guard objects is documented in the schema itself. The description adds only that a single source sequence is planned against multiple platforms and that aspect-ratio/reframe math is involved, without elaborating on strategy options or the guard parameters beyond what the schema says. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Plan') and a precisely scoped resource: a multi-ratio delivery matrix for one source sequence across named platforms. It enumerates the plan's contents (sequence settings, reframe scale math, duration/file-size fit, caption safe zones, apply routes), which separates it from siblings like validate_platform_publish_package or plan_short_export_folder without the agent needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Local-only; never changes Premiere' implies this is the planning step taken before any real export or mutation, but no explicit alternative is named (e.g., which sibling validates the resulting package or performs the export). Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_reaction_captionsPlan Reaction CaptionsA
Read-onlyIdempotent

Plan stacked, speaker-colored reaction captions from a word timeline and an explicit speaker palette. Flash-length words merge, overlaps stack, and unknown speakers stay uncolored. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
frame_rateNoSequence frame rate used to snap times to frames; defaults to 30.
shot_changesNoOptional labeled cut points. A matching speaker's caption will not start before they appear on screen when a readable hold remains.
max_cue_charsNoLongest caption text before a cue is split at a word boundary; defaults to 84 (two 42-character lines).
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
max_cue_secondsNoLongest time one caption stays up before it is split; defaults to 6.
speaker_paletteYesKnown speakers and their exact #RRGGBB colors. Missing labels are returned as uncertain and never receive a guessed color.
min_hold_secondsNoMinimum duration kept after clamping a cue to a shot change; defaults to 0.35.
merge_gap_secondsNoSame-speaker words closer than this become one cue; defaults to 0.12 so a short pause can start a new line.
combine_gap_secondsNoMaximum gap when combining a flash cue with the next same-speaker cue; defaults to 0.8.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
min_solo_cue_secondsNoCues shorter than this merge with the next same-speaker cue; defaults to 0.45.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, it discloses key behavior: flash-length words merge, overlaps stack, unknown speakers stay uncolored, and nothing is written to Premiere. It could still say more about the returned plan or edge-case handling, but the essential behavioral traits are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose and behavior, with no wasted wording. The safety note is placed last where it is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a rich input schema, an output schema, and detailed annotations, so the description need not restate parameter details or return values. It supplies the key missing conceptual context: what is planned, what merge/stack behavior to expect, and that it is local-only.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 12 parameters in detail. The description mentions the core inputs (word timeline and speaker palette) and some processing behavior, but adds no parameter-level syntax or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: it plans stacked, speaker-colored reaction captions from a word timeline and speaker palette. It distinguishes itself from mutation or caption-building siblings by stating the local-only planning scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear this is a local planning step that never changes Premiere, which helps separate it from apply/build tools. However, it does not name explicit alternatives or 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.

plan_scene_segmentsPlan Scene SegmentsA
Read-onlyIdempotent

Turn reviewed source scene candidates into exact nonoverlapping segments with bounded source handles, rejected-candidate report and existing marker/subclip/bin routes. Detection never edits source; linked audio is preserved in the plan.

NameRequiredDescriptionDefault
planYesStrict scene input: source_id, source_duration_ticks, candidates[{ticks,confidence,classification cut/flash/pan/fade}], approved_indices, optionalhandle_ticks.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the lower bar applies; the description still adds real behavioral context by promising nonoverlapping segments, bounded source handles, a rejected-candidate report, and preservation of linked audio. It does not clarify what happens to candidates not in approved_indices beyond the report reference, but the added substance exceeds annotation restatement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that opens with the verb and resource and packs the output artifacts tersely with zero filler. The comma-list of 'marker/subclip/bin routes' is dense jargon that slightly hurts readability, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no prose; the description instead covers the gaps that matter — nonoverlap guarantee, handle bounds, rejection reporting, linked-audio preservation, and the fact that detection alone never mutates sources. For a three-parameter planning tool this is sufficient to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents plan, expected_cep_target, and expected_project_path in detail. The description only loosely echoes the schema ('reviewed candidates', 'bounded source handles') without explaining approved_indices semantics or how handles are bounded, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific transformation (reviewed scene candidates → exact nonoverlapping segments) plus the artifacts it emits (bounded handles, rejected-candidate report, marker/subclip/bin routes). It is clearly distinct from the detection siblings, though it never names detect_source_scene_changes or apply_scene_review_workflow as the upstream/downstream counterparts, leaving that inference to the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The words 'reviewed source scene candidates' and 'Detection never edits source' imply this runs after detection and a human/agent review step, but the ordering and preconditions are never stated outright. No exclusion tells the agent when to prefer a sibling such as preview_scene_review_workflow or scene_edit_detection instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_short_export_folderPlan Short Export FolderA
Read-onlyIdempotent

Plan a series-named export folder inside an approved Shorts root and remind the caller to create it when missing. Local-only; never writes files or changes Premiere.

NameRequiredDescriptionDefault
brandNoChannel brand kit. cafe must not reuse watch_club fonts, name cards, or speaker colors.
titleYesShort title used as the file stem.
extensionNoFile extension without a dot; defaults to mp4.
export_rootYesAbsolute Shorts export root, for example the ALL Shorts or Cafe Exports folder.
series_nameYesAnime or series folder name to create under export_root when missing.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish read-only, idempotent, and non-destructive behavior, and the description adds useful context: it is local-only, never writes files or changes Premiere, and only reminds the caller to create the folder when missing. It does not add details about permissions, rate limits, or output structure, but the output schema likely covers return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the core action and scope, and includes the critical non-mutating constraint without unnecessary detail. Every sentence contributes directly to understanding the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the full schema coverage and the presence of an output schema, the description provides enough high-level context for the agent to understand the tool’s purpose, behavior, and non-mutating nature. It does not mention the optional CEP/project-path validation guards, but those are fully documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters and their nested structures. The description reinforces the series-name and export-root concepts but does not add meaning beyond the schema for parameters such as brand, title, extension, expected_cep_target, or expected_project_path.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: planning a series-named export folder inside an approved Shorts root, with a reminder to create it when missing. It clearly distinguishes this from file-writing or Premiere-changing tools, though it does not explicitly name sibling alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context by stating the tool is local-only and never writes files or changes Premiere, which helps an agent choose it when a non-mutating folder-planning step is needed. It does not explicitly name alternatives or exclusions, so it falls short of the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_short_subscribe_ctaPlan Short Subscribe CtaA
Read-onlyIdempotent

Plan a brief subscribe overlay about two-thirds through a Short, after an optional hook, in a platform-safe lower-third. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
copyNoOptional overlay text. Defaults to a brand-appropriate subscribe line.
brandNoChannel brand kit. cafe must not reuse watch_club fonts, name cards, or speaker colors.
at_ratioNoPlacement as a fraction of duration; defaults to 2/3.
platformNoSafe-zone profile; defaults to youtube_shorts.
frame_rateNoSequence frame rate used to snap times to frames; defaults to 30.
hold_secondsNoHow long the prompt stays on screen; defaults to 2.
duration_secondsYesFinished Short duration in seconds.
hook_end_secondsNoIf the hook ends later than the default placement, the CTA starts after the hook.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint, and the description reinforces this with 'Local-only; never changes Premiere' while adding real placement behavior — hook-aware timing and platform safe-zone framing. It stops short of saying what the caller does with the produced plan or how it interacts with the optional CEP identity guards.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero waste: the placement behavior is front-loaded and the safety clarification follows. Nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need no explanation, and annotations cover the safety profile. The gap is workflow context: for a 10-parameter planning tool with identity guards, the description never says what consumes the plan or whether an active sequence is required, leaving the agent to guess the next step.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 10 parameters (including the nested expected_cep_target guard) are already documented. The description loosely maps to a few of them ('two-thirds through' → at_ratio default, 'after an optional hook' → hook_end_seconds, 'platform-safe' → platform), but adds no syntax, defaults, or validation detail beyond the schema — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Plan') plus a precise resource ('brief subscribe overlay') with placement logic (two-thirds through a Short, after an optional hook, platform-safe lower-third). The scope is unambiguous, though it doesn't explicitly contrast itself with materializing siblings like add_text_overlay or the apply_* plan executors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Local-only; never changes Premiere' implies this is a pre-execution planning step, but the description never states when to choose it over add_text_overlay, plan_reaction_captions, or the apply_* tools that consume plans. Usage must be inferred from the tool name and the read-only hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_shot_matchPlan Shot MatchB

Compare two bounded local-media frame samples and return measured waveform/parade/saturation deltas plus coarse correction directions. Read-only planning only; it does not grade Premiere or claim that primaries alone can match the shots.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
target_media_pathYesExisting local target video file
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
target_time_secondsNoTarget source time from 0 through 86400 seconds (default: 0)
reference_media_pathYesExisting local reference video file
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
reference_time_secondsNoReference source time from 0 through 86400 seconds (default: 0)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does add useful scope: what is measured, that results are coarse directional guidance rather than a guaranteed match, and that Premiere grading is out of scope. But it explicitly declares "Read-only planning only" while the annotations set readOnlyHint=false, which sends an agent a conflicting signal about whether the call can change state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the comparison and its outputs, followed by the scoping caveat. The second sentence slightly over-explains defensively ("does not claim that primaries alone can match") but still earns its place as a limitation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it correctly focuses on inputs compared and limits of the result. For a 7-parameter tool with nested CEP guard objects, the unaddressed gap is how the two time parameters and the optional guard interact with a frame comparison.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters like reference_time_seconds, target_time_seconds and idempotency_key are already documented in detail. The description's word "bounded" hints that the samples are single bounded frame points, but it adds no timing, path requirement, or guard-parameter meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Compare two bounded local-media frame samples and return measured waveform/parade/saturation deltas plus coarse correction directions" names a concrete verb (compare), the resources (two frame samples) and the output shape. It reads distinctly from siblings like color_correct or read_video_scopes, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause "Read-only planning only; it does not grade Premiere" tells the agent this is a pre-edit planning step rather than an applied correction, which implies usage. However, it gives no explicit when-to-use condition, no prerequisites (e.g. that both files must exist locally), and no named alternative for the actual application of the match.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_silence_review_markersPlan Silence Review MarkersA
Read-onlyIdempotent

Create a bounded, non-mutating review plan that maps FFmpeg-detected source-media silences onto one known 1x timeline placement. It clips candidates to the supplied source in/out span, redacts the source path, and never adds markers, cuts clips, or changes Premiere.

NameRequiredDescriptionDefault
media_pathYesAbsolute path to the local source media file to analyse.
max_candidatesNoMaximum candidate ranges to return (default: 50, maximum: 200).
source_in_secondsNoSource-media in point used by the placement (default: 0).
noise_threshold_dbNoLevel at or below which audio counts as silence, in dBFS (default: -30).
source_out_secondsNoExclusive source-media out point used by the placement. Defaults to the detected media duration when available.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
min_duration_secondsNoShortest run of silence to consider (default: 1.5).
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
timeline_start_secondsYesTimeline time where this 1x source placement begins.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint/idempotentHint/non-destructive, so the safety bar is pre-cleared; the description still adds real non-obvious behavior: detection is FFmpeg-based, candidates are clipped to the supplied in/out span, the source path is redacted from the plan, and output is bounded. Path redaction in particular is a behavioral trait an agent could not learn from the schema or annotations. Not a 5 because no caveats are given about failure modes (unreadable media, missing FFmpeg, no silences found).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and its scope, second sentence carries the constraints and the explicit non-mutation guarantee. No filler, no restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not explain the plan's shape, and annotations plus 100% schema coverage carry safety and parameter detail, so what remains is well covered. The one gap is the handoff story: nothing says the resulting plan is meant to be consumed by a follow-up apply tool, which matters given this tool deliberately stops short of writing anything.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 9 parameters, including the nested expected_cep_target guard, is already documented in structured data; baseline is 3. The description adds only light meaning beyond that — that candidates are clipped by the source in/out span and that output is bounded — without explaining units, defaults, or how expected_cep_target interacts with a read-only planning call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and object ('Create a bounded, non-mutating review plan') and pins the resource precisely: FFmpeg-detected source-media silences mapped onto one 1x timeline placement. It implicitly separates itself from the marker-writing tools by declaring it 'never adds markers, cuts clips, or changes Premiere', but it never names the sibling it defers to (add_markers_batch / detect_silence), so differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'non-mutating review plan' plus 'never adds markers, cuts clips, or changes Premiere' tells the agent this is the preview stage, not the apply stage, which is the key routing decision against the many mutation siblings. There is no explicit 'use X instead when...' clause or stated prerequisite (e.g. run detect_silence first, or feed the plan into add_markers_batch), leaving the follow-up path to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_speaker_checkerboardPlan Speaker CheckerboardA
Read-onlyIdempotent

Plan a speaker checkerboard (each speaker's turns on their own video/audio track) from a caller-supplied word timeline. Returns frame-snapped segments, split points, track assignments, and the add_track/razor_all_tracks/move_clip_to_track routes. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
frame_rateNoSequence frame rate used to snap times to frames; defaults to 30.
handle_framesNoFrames to pad each segment outward, clamped so adjacent turns never overlap; defaults to 2.
speaker_orderNoOptional speaker labels fixing track slot order; unlisted speakers append in first-appearance order.
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
min_turn_secondsNoInterior turns shorter than this are absorbed into the surrounding speaker; defaults to 0.8.
merge_gap_secondsNoSame-speaker words separated by at most this gap merge into one turn; defaults to 0.5.
track_per_speakerNotrue (default) assigns one track per speaker; false alternates consecutive segments between two tracks.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
base_audio_track_indexNoAudio track holding the source clip; defaults to 0.
base_video_track_indexNoVideo track holding the source clip; defaults to 0.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, but the description adds genuinely new behavioral facts: the tool is purely local (no host round-trip, no auth/permission prerequisite) and it emits command routes rather than performing edits. It does not state failure modes (e.g. what happens on unlabeled or same-speaker overlapping words) beyond what the schema says.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler: purpose and definition first, then the return payload that tells the agent how to chain the result, then the safety/scope constraint. Nothing is repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter planner with a rich output schema and full annotation coverage, the description is adequate: intent, side-effect posture, and return shape are all covered. It stops short of saying that the returned add_track/razor_all_tracks/move_clip_to_track routes are meant to be executed by those specific sibling tools in order, which would complete the workflow picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (frame_rate, handle_frames, min_turn_seconds, merge_gap_seconds, track_per_speaker, base track indices, expected_* guards) is already documented. The description adds only that the timeline is 'caller-supplied' and that outputs are frame-snapped, which the schema already conveys; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Plan'), a specific resource ('speaker checkerboard'), and defines it inline ('each speaker's turns on their own video/audio track'), then names the input source. The declared return payload (segments, split points, track assignments, add_track/razor_all_tracks/move_clip_to_track routes) separates it from generic planners like preview_edit_plan or plan_multicam_angle_switches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Local-only; never changes Premiere' plus 'returns ... routes' implies the usage pattern (call this to compute a plan, then execute the routed commands elsewhere), but the agent must infer that. No explicit when-to-use or when-not-to-use is stated, and no alternative sibling is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_word_mute_rangesPlan Word Mute RangesA
Read-onlyIdempotent

Plan mute or bleep ranges for listed words/phrases in a word timeline. Returns redacted, frame-snapped mute ranges, ready-to-apply audio keyframes and (for bleep) tone placements. Local-only; never changes Premiere.

NameRequiredDescriptionDefault
modeNomute ducks the dialogue only; bleep also emits tone placements. Defaults to mute.
wordsYesExact words or phrases to mute, matched as consecutive normalized tokens.
frame_rateNoTimebase used to snap ranges to whole frames; defaults to 30.
mute_level_dbNoLevel inside each range for add_audio_keyframes; defaults to -60.
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
padding_secondsNoSeconds added before and after each flagged word; defaults to 0.04.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description reinforces this with 'Local-only; never changes Premiere' plus a concrete summary of what the plan returns. It stops short of explaining the CEP-only guard parameters (expected_cep_target, expected_project_path) that will cause refusals, which is meaningful behavior left to 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no waste: purpose first, outputs second, safety/scope last. Every sentence carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values needn't be spelled out, and the description still sketches the returned artifacts and the non-mutating guarantee. The main gap is the absent prerequisite/routing information (which transcript tool supplies word_timeline, which tool applies the plan).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already well documented and baseline 3 applies. The description adds only light meaning ('frame-snapped' implying frame_rate, the mute-vs-bleep distinction) that largely restates the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource: 'Plan mute or bleep ranges for listed words/phrases in a word timeline', with the output artifacts named (redacted, frame-snapped ranges, audio keyframes, tone placements). It implicitly separates itself from apply-side siblings like add_audio_keyframes by noting the keyframes are only 'ready-to-apply', but it never names an alternative tool explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context ('Local-only; never changes Premiere') but no explicit when-to-use vs when-not guidance and no pointer to siblings such as add_audio_keyframes or plan_filler_word_removal. The prerequisite that the word_timeline must come from get_clip_transcript_uxp appears only in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

play_source_monitorPlay Source MonitorA

Request playback of the clip in the Source Monitor. Fails when no clip is loaded. The legacy API does not provide a same-call position readback, so movement is not reported as verified.

NameRequiredDescriptionDefault
speedNoPlayback speed (1.0 = normal, 2.0 = 2x, -1.0 = reverse). Default: 1.0
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavioral context beyond annotations: the failure mode (no clip loaded) and the disclosure that movement is not verified because the legacy API has no same-call position readback. That is a non-obvious limitation an agent needs. Annotations only say non-read-only, non-destructive, non-idempotent. It doesn't note that this tool ignores idempotency_key semantics or whether speed affects subsequent state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then the precondition, then the verification caveat. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values needn't be described, and the schema is rich. But the description never mentions the idempotency_key interactions or the expected_cep_target guard for a tool that carries three heavy guard parameters, and it doesn't say whether playback is asynchronous or blocking. Adequate but with clear gaps for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema documents speed, idempotency_key, expected_cep_target and expected_project_path in depth. The description adds only that no position readback exists, not what each guard param means. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Request playback of the clip in the Source Monitor'. Clearly a source-monitor playback action, distinguishable from siblings like play_timeline (timeline playback) and get_source_monitor_position (readback). It doesn't explicitly name those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The precondition 'Fails when no clip is loaded' implies usage context, and the sentence about no position readback hints that get_source_monitor_position is the verification path. But neither alternative nor a when/when-not statement is stated explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

play_timelinePlay TimelineA

Request playback of the active sequence timeline through QE. The legacy API does not provide a same-call playhead readback, so movement is not reported as verified.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the bar is lower. The description adds genuinely non-obvious behavioral context the agent cannot get elsewhere: the legacy API gives no same-call playhead readback, so the agent should not treat motion as verified. It stops short of saying whether playback is fire-and-forget or how it terminates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero waste, with the action front-loaded and the verification caveat immediately after. Nothing could be cut without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a playback control tool, the description omits practical essentials: whether playback blocks or is asynchronous, whether/how the agent should use stop_playback, whether an active sequence must be open, and what the QE path implies versus other backends. An output schema exists, so return-value detail is not needed, but the interaction model around playback remains unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and all three parameters are richly documented in the schema itself (idempotency_key, expected_cep_target, expected_project_path). The description adds nothing about any of them, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: playback of the active sequence timeline via QE. The phrase 'active sequence timeline' implicitly separates it from sibling play_source_monitor, but it never names that sibling explicitly, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the name and phrase 'playback of the active sequence timeline'. No when-to-use, when-to-avoid, or explicit pointer to the obvious alternatives (play_source_monitor to play the source, stop_playback to end playback) despite their presence in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

predict_timeline_editPredict Timeline EditA
Read-onlyIdempotent

Predict exact affected clips for a conservative supported insert/overwrite/trim/split/move/remove/ripple/enable subset using complete canonical state. Refuses unknown locks, links, source handles and retiming. Local prediction does not execute Premiere or promise native edit semantics.

NameRequiredDescriptionDefault
snapshotYesVersion 1 canonical snapshot from inspect_timeline_snapshot or an equivalent verified adapter; exact tick strings, host identities, completeness, tracks/clips and SHA256 revision are validated before use.
operationsYesOperations run sequentially against predicted state.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real context beyond them: input must be a complete canonical snapshot, unknown locks/links/source handles/retiming are refused, and the result is a local prediction that 'does not promise native edit semantics'. That last caveat is exactly the kind of limitation an agent needs. It stops short of saying what happens on partial/ambiguous state or how sequential operations interact on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the capability and followed by the refusal and non-execution caveats. Dense with domain jargon ('canonical state', 'source handles'), but no sentence is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema, rich annotations, and full schema coverage, the description covers the remaining burden well: prediction vs execution, refusal conditions, and semantic non-guarantees. The only meaningful gap is disambiguation from the other preview_edit_plan-style tools, which the sibling list makes a real ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters including the deeply nested expected_cep_target are already documented in the schema. The description adds only the framing that state must be 'complete canonical', which the snapshot schema also states, plus the sequential-ordering note that is repeated in the operations schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('predict exact affected clips') over a named operation set (insert/overwrite/trim/split/move/remove/ripple/enable), which is far more precise than the title alone. It does not name a sibling to differentiate from, even though preview_edit_plan, preview_extended_edit_plan and can_execute all sit close by.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The dry-run nature ('does not execute Premiere') implies this precedes a real edit, and 'conservative supported subset' plus the refusal list mark its boundaries. But there is no explicit statement of when to choose this over preview_edit_plan / apply_edit_plan / can_execute, so the routing decision 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.

prepare_transcript_workflowPrepare Transcript WorkflowA
Destructive

Inspect native UXP transcript readiness before optionally starting Speech-to-Text once per operation. Returns accepted/pending/ready/failed/unknown with revision, never transcript completion from start acceptance. No CEP fallback; Adobe privacy/service preferences apply to explicitly confirmed start.

NameRequiredDescriptionDefault
languageNoOptional approved host language.
operation_idYesStable workflow operation ID, reused for inspection only after start.
wait_secondsNoBounded readiness wait, default0; never repeats native start.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
project_item_idYesExact source project-item ID.
start_if_missingNoAllow one native start after confirmed absence; defaultfalse.
confirm_destructiveNoRequired true for native start; Adobe services may be used.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_transcript_revisionNoOptional prior revision; changes return review_required.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark this as destructive and non-read-only, and the description adds important behavior: the returned status set, revision, that start acceptance does not mean transcript completion, once-per-operation semantics, no CEP fallback, and Adobe privacy/service implications for confirmed start.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences front-load the purpose, then add return-state and constraint caveats. Every sentence carries operational information, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive optional-start workflow with 10 parameters, nested CEP guards, and an output schema, the description supplies the essential caveats an agent needs before calling. The remaining parameter and return details are adequately covered by the rich input schema and output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so a baseline of 3 is appropriate, but the description adds cross-parameter context: 'once per operation' relates to operation_id, 'explicitly confirmed start' relates to confirm_destructive, and 'No CEP fallback' relates to the CEP-only expected_cep_target guard.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and scope: inspect native UXP transcript readiness, with an optional one-time Speech-to-Text start. It also names the CEP fallback constraint, giving an agent a concrete way to distinguish this workflow from unrelated sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly frames the use case as inspecting readiness before optionally starting Speech-to-Text, and notes that start requires explicit confirmation and is once per operation. It does not explicitly name alternatives or give a strong when-not-to-use rule beyond the no-CEP-fallback constraint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_after_effects_renderPreview After Effects RenderA
Read-onlyIdempotent

Preview a bounded queue-only After Effects render request for one named composition and existing workspace output directory. It does not contact Adobe, enqueue, or render.

NameRequiredDescriptionDefault
output_pathYesNew workspace-contained output file path whose parent already exists.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
composition_nameYesExact existing After Effects composition name.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
output_module_templateYesExact After Effects output-module template name.
approved_workspace_pathYesAbsolute operator-approved workspace root.
render_settings_templateYesExact After Effects render-settings template name.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the request is 'bounded' and 'queue-only', nothing contacts Adobe, and no render job is queued or produced — exactly the facts that distinguish a preview from an actual render.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero redundancy. The positive scope is front-loaded and the exclusion clause follows immediately, so the agent gets the essential distinction in the first read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full schema coverage and rich annotations, the description's remaining burden is to convey the no-side-effect boundary, which it does clearly. It is only slightly short on routing guidance relative to the many nearby After Effects/queue siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all eight parameters (including idempotency_key and the CEP guard objects) are already documented in the schema; the baseline of 3 applies. The description only alludes to composition_name and output_path ('one named composition and existing workspace output directory') and adds no meaning for the render-settings/output-module templates or guard objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Preview) and resource (an After Effects render request) plus its scope: queue-only, one named composition, existing workspace output directory. The negative clause ('does not contact Adobe, enqueue, or render') separates it from the enqueue path, though it never names a sibling tool explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is a pre-flight/dry-run step before enqueueing, but it never says 'use this before enqueue_after_effects_render' or when to prefer it over inspect_after_effects_render_templates or preview_after_effects_render_handoff. The when-to-use is inferable only from the negation of what it does not do.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_after_effects_render_handoffPreview After Effects Render HandoffA
Read-onlyIdempotent

Preview import of one completed After Effects single-file render into an existing Premiere bin. Reads both connected hosts and binds approval to file metadata and project/bin identity. Does not render, import, or edit a timeline.

NameRequiredDescriptionDefault
output_pathYesExisting completed .mov, .mp4, .mxf, .avi or .wav render; image sequences are not supported.
target_bin_idYesExact node ID of an existing destination bin, never a name.
ae_project_pathYesExact open, saved After Effects project path.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
queue_item_indexYesOne-based AE render queue item index, as returned by enqueue_after_effects_render.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
premiere_project_pathYesExact open, saved Premiere project path. It may be outside approved_workspace_path: it is only compared with the project Premiere has open.
approved_workspace_pathYesExisting absolute workspace containing both saved projects and the rendered media.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely non-redundant behaviour: it reads both connected hosts and binds the approval to file metadata plus project/bin identity — exactly the kind of side-effect-free verification detail an agent needs. Minor gap: it doesn't say what the preview emits (approval token/identity snapshot), though the output schema covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler: the core action first, the mechanism second, the negative scope last. Each sentence carries distinct information with no restatement of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema and rich annotations, the description only needs to establish scope and guarantees, which it does. It is slightly thin on the relationship to apply_after_effects_render_handoff and on the fact that this is a dry-run approval gate, but nothing required for a correct call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 9 parameters is already documented, warranting the baseline. The description reinforces the domain constraints ('single-file render', 'existing Premiere bin') that map onto output_path and target_bin_id, but adds no syntax, format, or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource and scope: 'Preview import of one completed After Effects single-file render into an existing Premiere bin.' It does not name the apply_after_effects_render_handoff sibling explicitly, but the closing negative clause ('Does not render, import, or edit a timeline') draws the preview/apply boundary clearly enough for an agent to pick correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The exclusion clause tells the agent what this tool will not do, which indirectly signals it is a pre-flight approval step. However, it never says when to prefer it over apply_after_effects_render_handoff, nor what prerequisite state (queued render, open hosts) must exist, leaving the when-to-use decision implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_brand_spotPreview Brand SpotA
Read-onlyIdempotent

Preview a brand-spot assembly from existing project items with an optional workspace-contained MOGRT overlay. Preview is local-only; it does not read or import the MOGRT file.

NameRequiredDescriptionDefault
mogrt_pathNoOptional absolute .mogrt path, which must be inside approved_workspace_path.
sequence_idYesExact ID of an existing empty destination sequence. It must be active at apply time.
motion_styleNoScale-motion style for product and brand spots; defaults to alternate.
asset_item_idsYesExact existing project-item node IDs in playback order; external media paths are deliberately not imported by this workflow.
transition_nameNoTransition name; defaults to Cross Dissolve. Use none to disable transitions.
audio_track_indexNoEmpty destination audio track index, default 0.
title_track_indexNoEmpty title-overlay video track index, default 1 and distinct from video_track_index.
video_track_indexNoEmpty destination video track index, default 0.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
title_start_secondsNoMOGRT start time in seconds, default 0.4.
clip_duration_secondsNoPlanned spacing between asset starts; defaults to 5 seconds for a motion demo and 4 seconds for spots.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathNoOperator-approved root containing mogrt_path; required whenever mogrt_path is supplied.
transition_duration_secondsNoTransition duration, default 0.75 seconds for demos and 0.5 seconds for spots.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds meaningful non-obvious behavior: preview is local-only and does not read or import the MOGRT file, which matters because a mogrt_path parameter is accepted. It does not mention any rate limits or output characteristics, but the added local-only disclosure is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with zero waste. The core purpose is front-loaded, and the important local-only qualifier follows immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema means return values need not be explained, and annotations cover safety semantics. However, for a complex 14-parameter tool with nested guard objects and many sibling preview/apply tools, the description omits when this preview should be used versus apply_spot_workflow_plan or preview_product_spot, leaving a notable routing gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 14 parameters in detail. The description adds marginal context by noting the MOGRT overlay is workspace-contained, but that constraint is also stated in the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Preview) and resource (brand-spot assembly), and clarifies it is built from existing project items with an optional MOGRT overlay. It does not name sibling tools such as preview_product_spot or apply_spot_workflow_plan, so sibling differentiation is only implied by the word 'preview'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. In a crowded namespace with preview_product_spot, preview_motion_graphics_demo, preview_edit_plan, and apply_spot_workflow_plan, the description leaves the routing decision entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_editorial_planPreview Editorial PlanA
Read-onlyIdempotent

Revalidate an exact server-issued editorial plan against the saved project-context revisions and return an opaque confirmation token. This tool is read-only and cannot apply the plan.

NameRequiredDescriptionDefault
planYesUnchanged plan returned by create_editorial_plan from this running server instance.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds two useful behavioral details: it returns an opaque confirmation token and cannot apply the plan. It does not cover token lifetime, failure semantics, or what happens when the plan is stale—minor gaps given the strong annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words; the core purpose is front-loaded. The second sentence is slightly redundant with the readOnlyHint annotation, but it still provides a useful explicit clarification for the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and rich annotations that carry much of the burden. The description confirms the read-only nature, the token return, and the inability to apply, which is adequate for a preview tool. It stops short of explaining how to use the token or the exact failure modes, but that is not strictly required to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema thoroughly documents all three parameters including the 'plan' field's origin from create_editorial_plan. The description adds marginal value by calling the plan 'exact' and 'server-issued', but mostly reiterates information already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('revalidate') and resource ('editorial plan'), and clarifies the tool cannot apply the plan. This distinguishes it from apply_edit_plan, but it does not explicitly name that sibling or create_editorial_plan to help the agent choose between preview tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'exact server-issued editorial plan' implies the tool should be used after create_editorial_plan, and 'cannot apply' hints it is a preview step. However, there is no explicit when-to-use guidance, no named alternatives, and no prerequisites (e.g., must be same server instance) stated in the description itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_edit_planPreview Edit PlanA

Inspect sequence, project item, clip and requested track targets before previewing a compound timeline edit without changing Premiere. Returns a single-use confirmation token bound to stable project, sequence and target identities; it expires after 30 minutes and is required by apply_edit_plan.

NameRequiredDescriptionDefault
planYesAn edit plan: { sequence_id?, operations: [...] } with up to 100 insert_clip and remove_clip operations. Operations run in order, and each one's times refer to the timeline as the operations before it left it.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: no Premiere mutation, single-use token, 30-minute expiry, identity binding to project/sequence/targets. This also clarifies why readOnlyHint=false despite 'without changing Premiere' (a token is issued). It doesn't say what happens when inspection fails, e.g. whether an error is raised or a refusal result is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no filler; the token/expiry/consumer facts come after the purpose statement. The opening clause listing four target kinds is slightly clause-heavy but still front-loads the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with a nested plan object, a CEP guard object and an output schema, the description covers the essential contract: no mutation, what is returned, how long it lives, and which tool consumes it. Remaining details (result shape, failure modes) are handled by the output schema or are non-blocking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the nested plan/operations and expected_cep_target fields are already documented in the schema. The description adds no parameter-level meaning of its own (e.g. that the plan holds up to 100 ordered operations), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs (inspect, preview) on a specific resource (a compound timeline edit plan spanning sequence, project item, clip and track targets) and names the follow-up tool apply_edit_plan. It does not distinguish itself from the other preview_*_plan siblings (preview_extended_edit_plan, preview_editorial_plan), so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Saying the returned token 'is required by apply_edit_plan' establishes the use context clearly: call this first, then apply. There are no explicit exclusions or guidance on when a different preview tool is the better choice, which keeps it out of 5 territory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_extended_edit_planPreview Extended Edit PlanA
Read-onlyIdempotent

Preview up to100 distinct bound CEP targets for supported trim, experimental QE split, same-track move, enable, scalar effect and keyframe steps. All targets and descriptor identities validate before token issuance; unsupported links/retiming/unknown source handles refuse. Requires exact saved project path and active sequence. No mutation or atomicity claim.

NameRequiredDescriptionDefault
planYesStrict compound plan; one operation per host clip, canonical state binds identities and source handles.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered; the description adds real value beyond that by disclosing the validate-before-token ordering, the refusal conditions, and the honest 'no mutation or atomicity claim' caveat. It could have said whether the preview mutates session state or how long a token stays valid, which would complete the picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense, front-loaded sentences with no filler; supported routes and refusal cases come before prerequisites. Minor flaws: the typo 'up to100' and heavy jargon ('descriptor identities', 'token issuance') that assumes domain knowledge.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, prerequisites, refusal behavior and supported operations for a nested 3-parameter tool, and an output schema exists so return values need no description. What is missing is the workflow link to apply_extended_edit_plan and any statement about how the issued token is used.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with only 3 parameters, so the schema carries most of the load and baseline 3 applies. The description adds only marginal semantics: that project_path must point to an exact saved project and that the plan is capped at 100 targets, without explaining the snapshot or expected_cep_target guard objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (Preview) and resource (extended edit plan) and enumerates exactly which step routes are supported: trim, QE split, same-track move, enable, scalar effect, keyframe. It is clear what the tool does, but it never distinguishes itself from the sibling preview_edit_plan, so an agent cannot tell which preview tool to pick without opening both schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete preconditions (exact saved project path, active sequence) and negative cases that will refuse (unsupported links, retiming, unknown source handles), which is strong selection guidance. It stops short of naming the follow-up tool that consumes the issued token (apply_extended_edit_plan) or stating when to prefer the simpler preview_edit_plan.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_facility_metadata_intakePreview Facility Metadata IntakeA
Read-onlyIdempotent

Read a bounded ALE table and preview explicit column-to-named-field mappings against reviewed source IDs/filenames. Reports duplicate table keys, ambiguous filenames, missing sources and unsupported fields. Never writes Premiere metadata or requires an XMP packet dump.

NameRequiredDescriptionDefault
pathYesAbsolute caller-selected local file path. Referenced media is never opened automatically.
sourcesYesCaller-reviewed bounded source catalog; duplicate filenames remain ambiguous.
match_columnYesALE column matched exactly against caller-reviewed source filenames.
column_mappingYesALE column to supported facility field: Scene, Shot, Take, Tape, CameraRoll, SoundRoll, LogNote, Comment or Description. Other fields are reported unsupported.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety bar is lower. The description adds useful behavioral context beyond annotations: it reports duplicate table keys, ambiguous filenames, missing sources, and unsupported fields, and explicitly says it never writes Premiere metadata or requires an XMP packet dump. It does not describe output format, but an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no wasted words. The purpose is front-loaded and the behavioral reporting and safety statement follow immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only preview tool with 100% schema coverage, an output schema, and safety annotations, the description is largely complete: it explains what is read, what is checked, and what is never done. It could better distinguish this tool from sibling preview/export tools, but no critical calling information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters, including the complex expected_cep_target and idempotency_key. The description adds only high-level meaning ('explicit column-to-named-field mappings', 'reviewed source IDs/filenames') and does not add syntax, constraints, or format details beyond the schema, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: reads a bounded ALE table and previews column-to-named-field mappings against reviewed source IDs/filenames. It is clearly about previewing facility metadata intake, but it does not name or distinguish itself from nearby siblings like export_facility_metadata_table or preview_project_intake.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'preview' and by the reported validation checks, but there is no explicit when-to-use guidance, no exclusions, and no named alternative. An agent can infer this is a pre-intake validation step, but must make that inference itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_mogrt_batchPreview Mogrt BatchA
Read-onlyIdempotent

Preview up to 20 bounded MOGRT recipe exports from a workspace-contained JSON or CSV data file. It does not contact Adobe or create any compositions or files.

NameRequiredDescriptionDefault
brand_kitNoOptional validated brand-kit values applied to every batch recipe.
data_file_pathYesExisting workspace-contained .json or .csv file with recipe rows.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
output_directoryYesExisting workspace-contained directory for every batch artifact.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathYesAbsolute operator-approved workspace root.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description still earns credit by adding two facts not in the annotations: the hard 20-item batch cap and the guarantee that no Adobe host is contacted and no artifacts are written.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the operative scope (up to 20, bounded, file-driven) is front-loaded before the non-effect clause. Every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% schema description coverage, the description does not need to explain return values or parameter syntax, and the no-side-effect statement is sufficient for a preview tool. The remaining gap is workflow placement - it never tells the agent to run create_mogrt_batch afterward or that this validates the same data file.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the lengthy idempotency_key and expected_cep_target documentation, so the schema does the heavy lifting. The description only implicitly maps to data_file_path (JSON or CSV) and narrows the count to 20; it adds no semantics for output_directory, brand_kit or the CEP guard.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ("Preview") and resource ("MOGRT recipe exports") and pins down the scope: a batch of up to 20 driven by a workspace-contained JSON/CSV file. It does not explicitly name create_mogrt_batch or preview_mogrt_recipe as the alternatives it is distinct from, so the sibling differentiation is inferable rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The preview framing plus "does not contact Adobe or create any compositions or files" strongly implies a dry-run step before the real batch job, but the description never says so or names the tool to use next. There are no explicit when-to-use or when-not-to-use clauses.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_mogrt_library_publishPreview Mogrt Library PublishA
Read-onlyIdempotent

Preview a no-overwrite publish of a validated MOGRT into a workspace-contained, versioned local library. The library root must already exist; no file or directory is created during preview.

NameRequiredDescriptionDefault
mogrt_pathYesExisting workspace-contained MOGRT artifact.
template_nameYesSafe immutable library template name.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
library_directoryYesExisting workspace-contained local library root.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathYesAbsolute operator-approved workspace root.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, so the safety profile is known. The description adds genuinely new behavioral context: nothing is written during preview, no file or directory is created, the publish is no-overwrite, and the library root must pre-exist. It stops short of describing what the preview returns or how it reports conflicts, which keeps it at 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler; the core action is front-loaded and the prerequisite plus no-side-effect guarantee follow immediately. Every clause carries information an agent would otherwise have to infer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with an output schema and rich annotations, the description covers the two things structured fields cannot: the pre-existing-library-root precondition and the guarantee of no filesystem writes. It omits any pointer to the follow-up publish_mogrt_to_library call and to the idempotency/replay behavior the key enables, which would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 7 parameters, including the deeply nested expected_cep_target guard and the idempotency_key semantics, so the schema does the heavy lifting. The description only echoes the required inputs ('validated MOGRT', 'workspace-contained library root', 'versioned library') without adding format or constraint detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (preview) and a specific resource (a no-overwrite publish of a validated MOGRT into a versioned local library), which is far more than a restatement of the name. It does not explicitly name the sibling it pairs with (publish_mogrt_to_library), so the read-only trial vs real commit distinction is only implied by the word 'preview'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states a hard prerequisite ('the library root must already exist'), which tells the agent a condition under which the call is valid. It never states when to choose this over publish_mogrt_to_library or inspect_mogrt_library, nor does it say a preview is a required precursor to the real publish, so the when-to-use guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_mogrt_premiere_handoffPreview Mogrt Premiere HandoffA
Read-onlyIdempotent

Preview a contained MOGRT import into one explicitly named disposable Premiere verification sequence and empty video track. It does not contact Premiere or alter a sequence.

NameRequiredDescriptionDefault
mogrt_pathYesExisting workspace-contained MOGRT artifact.
sequence_idYesExact Premiere sequence identifier to recheck before import.
start_secondsNoInsertion start time in seconds; defaults to 0.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
audio_track_indexNoAudio track index passed to Premiere; defaults to 0.
video_track_indexNoEmpty video track index for the imported MOGRT; defaults to 0.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathYesAbsolute operator-approved workspace root.
disposable_sequence_nameYesMust begin with 'MOGRT Verify - '.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is known. The description adds the non-obvious fact that it does not contact Premiere at all (not merely non-mutating), which is a real behavioral distinction beyond the annotations. Return shape is covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero waste; the non-mutation constraint is front-loaded immediately after the purpose so the agent gets the safe-to-call signal before anything else.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, nested objects, 100% schema coverage, and an output schema, the description covers what an agent needs at a high level: what it does, what it targets, and that it touches nothing. It stops short of clarifying the relationship to the apply counterpart, which is the one real gap given the sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description loosely maps to a few parameters ('contained' MOGRT path, 'explicitly named' disposable sequence, 'empty video track'), but adds no format or constraining detail beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (preview) and resource (MOGRT import handoff into a disposable verification sequence/track), and the second sentence disambiguates that no Premiere contact or sequence mutation occurs. It never names apply_mogrt_premiere_handoff as the counterpart, so sibling routing is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'does not contact Premiere or alter a sequence' line implies this is the safe dry-run to use before a real handoff, and that it targets a disposable verification sequence. But it names no alternative tool and gives no explicit when/when-not conditions, leaving the agent to infer the preview-then-apply workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_mogrt_recipePreview Mogrt RecipeA
Read-onlyIdempotent

Preview a bounded After Effects MOGRT recipe from the supported title, callout, quote, social, and media-placeholder template library. It validates one existing workspace output directory but does not contact Adobe or write any files.

NameRequiredDescriptionDefault
widthNoComposition width from 320 to 7680 pixels; defaults to 1920.
heightNoComposition height from 240 to 4320 pixels; defaults to 1080.
recipeNoSupported authored template recipe; defaults to lower_third.
headlineYesPrimary headline text, at most 160 characters. Required for text recipes; optional caption for media_placeholder.
subtitleNoOptional secondary lower-third text, at most 160 characters.
brand_kitNoOptional approved local brand kit. It can constrain naming, request an installed font, place a workspace-contained PNG/JPEG logo, and enforce a safe margin.
frame_rateNoComposition frame rate; defaults to 30.
text_colorNoOptional text color as #RRGGBB; defaults to #FFFFFF.
accent_colorNoOptional accent fill color as #RRGGBB; defaults to #2563EB.
template_nameYesSafe template file stem; the generated artifact is template_name.mogrt.
text_controlsNofull (default) also exposes per-text-layer Font Size, Fill Color, Stroke Color, Stroke Width, Position, Scale, Rotation, Anchor Point, and Opacity controls; text_only exposes only the text strings.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoComposition duration between 2 and 30 seconds; defaults to 5.
output_directoryYesExisting absolute output directory inside approved_workspace_path; this workflow never creates directories.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
placeholder_media_pathNoRequired for media_placeholder: absolute workspace-contained PNG, JPEG, MOV, or MP4 placed as the swappable Essential Graphics media slot.
approved_workspace_pathYesAbsolute operator-approved workspace root containing the saved AE project and output directory.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds useful behavioral context by stating it validates one existing workspace output directory and does not contact Adobe or write files, which is consistent with 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tightly written sentences. It front-loads the core purpose and follows with the key behavioral constraint, with no redundant or filler language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema, output schema, and annotations, the description is largely complete for a preview tool. It could better orient the agent to preview-versus-create or preview-versus-batch workflows, but the critical read-only and no-write behavior is clearly stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 18 parameters in detail. The description adds only limited parameter context, such as the workspace output directory and template library scope, so it does not meaningfully exceed the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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: preview a bounded After Effects MOGRT recipe from a named template library. It also bounds the scope to supported template categories, but it does not explicitly distinguish this tool from siblings such as create_mogrt_recipe or preview_mogrt_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the preview verb and by the note that it validates an existing output directory without writing files or contacting Adobe. However, the description does not explicitly say when to choose this over create_mogrt_recipe or batch preview tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_motion_graphics_demoPreview Motion Graphics DemoA
Read-onlyIdempotent

Preview a contained motion-graphics demo assembly from existing project items. It never creates demo assets, imports files, creates a sequence, or changes Premiere; apply requires an exact confirmation token.

NameRequiredDescriptionDefault
sequence_idYesExact ID of an existing empty destination sequence. It must be active at apply time.
asset_item_idsYesExact existing project-item node IDs in playback order; external media paths are deliberately not imported by this workflow.
transition_nameNoTransition name; defaults to Cross Dissolve. Use none to disable transitions.
audio_track_indexNoEmpty destination audio track index, default 0.
video_track_indexNoEmpty destination video track index, default 0.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
clip_duration_secondsNoPlanned spacing between asset starts; defaults to 5 seconds for a motion demo and 4 seconds for spots.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
transition_duration_secondsNoTransition duration, default 0.75 seconds for demos and 0.5 seconds for spots.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description reinforces this by enumerating exactly what it does NOT do: no asset creation, no imports, no sequence creation, no Premiere mutation. That explicit negative-scope list is real added value beyond the annotations. It stops short of describing the preview artifact returned or the confirmation-token contract in detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the scoping statement front-loaded and the non-mutation guarantees following. Nothing is padded. The trailing clause about the 'apply' confirmation token is slightly off-topic for a preview-only tool and could mislead an agent into looking for a token parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and 100% parameter coverage plus rich annotations mean the description's remaining obligation is scope and side-effect boundaries, which it states explicitly. Required empty/active sequence preconditions are covered by the schema. The definition is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the nested expected_cep_target is thoroughly documented in the schema. The description adds no parameter-level guidance, and 'apply requires an exact confirmation token' actually refers to a token that is not among this tool's 9 parameters, which is mildly confusing. A baseline 3 applies when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource: 'Preview a contained motion-graphics demo assembly from existing project items'. This clearly separates it from the many read-only get_* siblings. However, it never names the closely related preview_* workflow siblings (preview_product_spot, preview_brand_spot), so the agent must infer which preview tool this covers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

By stating 'from existing project items', the description implies a precondition of already-imported assets, and 'apply requires an exact confirmation token' implies this preview is a gating step. However, it never says when to choose this tool over preview_product_spot, preview_brand_spot, or preview_mogrt_recipe, and it does not name a triggering condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_otio_snapshot_exportPreview Otio Snapshot ExportA
Read-onlyIdempotent

Serialize the declared bounded linear offline snapshot subset to OTIO, then parse it back and compare exact supported structure. Refuses unsupported nests/effect parameters/non-frame timing. Returns text for review; does not write files or establish Premiere/destination compatibility.

NameRequiredDescriptionDefault
snapshotYespremiere-mcp.interchange.snapshot.v1 returned by inspect_otio_interchange; offline IDs only. Maximum 2,000 entries, 32 levels and 20,000 JSON nodes.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring it read-only, idempotent, and non-destructive, the description adds meaningful behavioral context: it serializes and parses back for structural comparison, refuses unsupported nests/effect parameters/non-frame timing, returns text for review, and does not write files or check Premiere/destination compatibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tightly packed sentences: action first, constraints second, output and limitations third. There is no redundant or filler language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, output schema, and annotations, the description is largely complete for an agent to select and invoke the tool. It does not explicitly connect the snapshot parameter to inspect_otio_interchange in the descriptive text, but the schema carries that relationship.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage and fully documents the snapshot and optional guard parameters. The description adds no parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a precise verb-and-resource framing: it serializes a bounded offline snapshot subset to OTIO, parses it back, and compares the structure. It distinguishes itself from writing export tools by stating it returns text for review and does not write files, though it does not explicitly name a sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for review-only validation (text output, no file writing) but does not explicitly state when to use it versus alternatives such as inspect_otio_interchange or a real export tool. The usage context is inferable rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_product_spotPreview Product SpotA
Read-onlyIdempotent

Preview a product-spot assembly from existing project items. The eventual apply is limited to explicit empty tracks, revalidates item IDs, and reports host readback without claiming visual delivery verification.

NameRequiredDescriptionDefault
sequence_idYesExact ID of an existing empty destination sequence. It must be active at apply time.
motion_styleNoScale-motion style for product and brand spots; defaults to alternate.
asset_item_idsYesExact existing project-item node IDs in playback order; external media paths are deliberately not imported by this workflow.
transition_nameNoTransition name; defaults to Cross Dissolve. Use none to disable transitions.
audio_track_indexNoEmpty destination audio track index, default 0.
video_track_indexNoEmpty destination video track index, default 0.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
clip_duration_secondsNoPlanned spacing between asset starts; defaults to 5 seconds for a motion demo and 4 seconds for spots.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
transition_duration_secondsNoTransition duration, default 0.75 seconds for demos and 0.5 seconds for spots.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint true and destructiveHint false, so the safety profile is covered. The description adds real value by scoping the eventual apply to explicit empty tracks, promising item-ID revalidation, and explicitly disclaiming visual delivery verification from host readback. However, the second sentence drifts into describing the apply tool rather than this preview, so the added transparency is only partly about this call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, purpose front-loaded, no filler. The second sentence is dense but earns most of its words; the only waste is that it describes the apply counterpart's guarantees rather than this tool's own behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and a fully documented ten-parameter nested schema, the description does not need to explain return values or parameters. It correctly frames the preview/apply relationship and the readback-vs-visual-verification caveat; the main omission is the empty-sequence precondition, which only the schema states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every one of the ten parameters is documented in the schema, including defaults and the nested expected_cep_target guard. The description mentions no parameter at all, so it neither adds nor subtracts; baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb ('Preview') plus a specific resource ('a product-spot assembly from existing project items') tells an agent exactly what it produces, and 'from existing project items' scopes the input. It does not name the sibling it complements (preview_brand_spot or apply_spot_workflow_plan), so the differentiation is only partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence about 'the eventual apply' implies this is a preview-before-apply step, so the workflow context is inferable. But no sibling is named, there is no explicit 'use this instead of X' routing, and the precondition that the destination sequence must already be empty appears only in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_project_intakePreview Project IntakeA
Read-onlyIdempotent

Inspect a bounded Premiere project against an explicit facility intake template and return a path-redacted report plus a non-mutating organization proposal. It never changes Premiere or persists the template.

NameRequiredDescriptionDefault
templateYesVersioned facility policy. Unknown fields and unsafe matching expressions are rejected by the intake engine.
max_itemsNoMaximum project items to inspect; defaults to 2000. Truncation returns an incomplete report.
include_pathsNoInclude observed media paths in findings. Defaults to false; hashes are returned instead.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and destructiveHint=false, but the description adds real value on top: output is path-redacted by default, the template is never persisted, and the project is never mutated. The 'bounded' wording hints at scope limits without spelling out max_items truncation, keeping it just below top marks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with zero waste. The primary action and return artifacts come first, and the non-mutation guarantee is front-loaded as the second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return contents, and the non-mutation/redaction guarantees cover the key behavioral risks for a preview tool. What is slightly under-specified is what 'bounded' concretely means and how the reviewed expected_cep_target guard interacts, but the rich schema and annotations fill most of that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with rich nested descriptions, so the schema carries parameter meaning. The description lightly reinforces path-redaction (relating to include_paths) and bounding (max_items) but adds no syntax or format detail beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource: inspect a bounded Premiere project against an explicit facility intake template, returning a path-redacted report and a non-mutating organization proposal. The read-only preview nature is clear, though it does not name the closest sibling (preview_facility_metadata_intake) to differentiate the two intake-preview tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'It never changes Premiere or persists the template' signals this is a safe dry-run preview, which implicitly suggests using it before any apply step. However, it never explicitly states when to prefer this over siblings like audit_project_structure or preview_facility_metadata_intake, leaving the routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_scene_review_workflowPreview Scene Review WorkflowA
Read-onlyIdempotent

Preview reviewed scene candidates against one exact CEP source and measured physical media duration. Binds project document/source path, explicit marker/subclip mode and destination bin name. No mutation; flashes/pans/fades remain in review evidence rather than automatic cuts.

NameRequiredDescriptionDefault
modeYesExplicit supported source-marker and/or subclip workflow.
bin_nameYesNew bin/name prefix used for approved scenes.
project_pathYesExact saved Premiere project path.
segmentationYesStrict input accepted by plan_scene_segments, including approved indices and exact source duration/handles.
parent_bin_idNoOptional exact existing parent bin ID.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false, and idempotentHint, so the description only needs to add context beyond that. It adds useful behavioral detail: no mutation occurs and flashes/pans/fades remain review evidence rather than automatic cuts. It does not describe return values, but an output schema exists to cover that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core action and followed by binding and safety context. Every sentence contributes purpose, input scope, or behavioral clarification. There is no filler or redundant explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with nested objects, 8 parameters, an output schema, and rich annotations. The description covers the core preview purpose, key binding inputs, and the critical no-mutation behavior. Idempotency and CEP guard details are left to structured fields, which is acceptable given the schema richness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameter meanings are already well documented. The description adds some framing around exact CEP source binding and destination bin naming, but does not add per-parameter meaning beyond the schema. This matches the baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: preview reviewed scene candidates against an exact CEP source and measured media duration. It also clarifies scope with marker/subclip mode and destination bin binding. It does not explicitly name the apply or planning sibling tools, so the sibling differentiation is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for review-before-apply workflows by stating 'No mutation' and explaining that flashes/pans/fades remain in review evidence. However, it does not explicitly say when to use this versus apply_scene_review_workflow or plan_scene_segments. The guidance is present but inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_stacked_camera_editPreview Stacked Camera EditA
Read-onlyIdempotent

Preview exact enable states for pre-razored ordinary stacked camera clips and preserve master audio. Refuses unreviewed cuts, retiming/nests, missing lock/link state. Apply creates a duplicate sequence first; no native multicam switch API is claimed.

NameRequiredDescriptionDefault
cutsYesContiguous reviewed camera ranges.
snapshotYesVersion 1 canonical snapshot from inspect_timeline_snapshot or an equivalent verified adapter; exact tick strings, host identities, completeness, tracks/clips and SHA256 revision are validated before use.
camera_track_idsYesInspected camera video track IDs.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
master_audio_track_idsYesMaster audio track IDs, preserved unchanged.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description earns credit for adding refusal semantics (unreviewed cuts, retiming/nests, missing lock/link state), the master-audio preservation guarantee, and the honest disclaimer that no native multicam switch API is claimed. These are behavioral constraints not present in the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and scoping constraints, and the second half covers refusals and the apply distinction in very few words. Some sentences are fragment-like ('Refuses unreviewed cuts, retiming/nests, missing lock/link state') and heavy on domain jargon, but there is little wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the schema fully documents the six parameters including the nested expected_cep_target. The description covers the critical behavioral constraints for a preview tool; the only minor gap is the absence of an explicit pointer to the apply sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so snapshot, cuts, camera_track_ids and master_audio_track_ids are already well documented in the schema. The description adds no parameter-level syntax, tick format, or identity-check detail beyond what the schema provides, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Preview) and object (enable states for pre-razored ordinary stacked camera clips) plus the master-audio preservation goal, which separates it from the apply sibling. The jargon 'pre-razored ordinary' and 'stacked camera' is dense, but an agent can still tell this is a dry-run/validation tool rather than a mutation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Refuses unreviewed cuts, retiming/nests, missing lock/link state' clause gives concrete when-not conditions, and the mention that 'Apply creates a duplicate sequence first' implies this preview should precede that apply. However, it never explicitly names apply_stacked_camera_edit or says 'call this before applying', so the routing 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.

preview_watched_media_importPreview Watched Media ImportA
Read-onlyIdempotent

Compare the active watch baseline with a fresh contained scan and return a path-redacted import proposal. It never imports or changes Premiere.

NameRequiredDescriptionDefault
watch_idYesID returned when the session watch started.
include_pathsNoExplicitly disclose contained paths for selected imports; defaults to false.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
known_media_path_hashesNoOptional hashes already represented in the Premiere project.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false, idempotentHint and openWorldHint=false. The description adds useful behavioral context beyond that: the output is path-redacted and the tool returns a proposal rather than applying an import, which tells the agent exactly what kind of side effect to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences. The core action is front-loaded, and the non-mutation guarantee follows immediately without any wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, output schema and annotations, the description provides enough context to understand the tool's role as a preview/import proposal generator. It does not explain how to establish the active watch or explicitly point to manage_media_watch, but the essential behavior and safety profile are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the nested parameters, watch_id, include_paths, idempotency_key and expected CEP/project guards are already well documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, which is the expected baseline when coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a precise verb and resource: it compares the active watch baseline with a fresh scan and returns a path-redacted import proposal. It also distinguishes itself from real import tools by stating that it never imports or changes Premiere.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly frames the tool as a preview step and explicitly excludes mutation by saying it never imports or changes Premiere. It does not name a specific alternative sibling such as import_media or manage_media_watch, but the context is clear enough for an agent to infer 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.

preview_workflow_recipePreview Workflow RecipeA
Read-onlyIdempotent

Validate and expand one declarative workflow recipe into guarded MCP routes. It does not invoke any route or change Premiere.

NameRequiredDescriptionDefault
recipe_idYesExact built-in or workspace recipe ID.
recipe_fileNoOptional contained JSON file with closed-schema custom recipes.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
provided_inputsNoNames of inputs already available to the caller; values are intentionally not persisted in the recipe preview.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathNoAbsolute approved workspace containing recipe_file; required with recipe_file.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, so the safety profile is covered structurally; the description's "does not ... change Premiere" largely restates that. It does add value by revealing that output is an expanded set of routes with guards rather than a single result, but it says nothing about validation-failure behavior or what a rejected recipe looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the core action front-loaded and the crucial non-effect stated immediately after. Nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and a fully documented 7-parameter schema, the description only needs to convey purpose and non-effects, which it does. The main remaining gap is that it does not mention the recipe_id must resolve to a built-in or workspace recipe, or how the preview relates to a subsequent execution step.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself carries unusually detailed parameter docs (idempotency semantics, tick ranges, guard fields), so the baseline is a 3. The description's phrase "guarded MCP routes" gives those guard parameters a purpose, marginally exceeding the baseline, though it names no parameter explicitly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Concrete verb pair ("Validate and expand") plus a specific resource ("one declarative workflow recipe") and a concrete output ("guarded MCP routes"). An agent can distinguish it from mutating siblings because it explicitly states it does not invoke the routes; it just never names the closest sibling (search_workflow_recipes) or any apply tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The negation "It does not invoke any route or change Premiere" implies this is a pre-flight/review step before execution, which is useful context. But it never says when to choose this over search_workflow_recipes (to find a recipe_id) or over the corresponding apply/execute tool, so the when-versus-alternatives guidance stays implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_mogrt_to_libraryPublish Mogrt To LibraryA

Publish the exact previewed MOGRT as an immutable local-library version. Requires explicit confirmation and will fail instead of replacing an existing version.

NameRequiredDescriptionDefault
preview_tokenYesOne-time token returned by preview_mogrt_library_publish.
confirm_publishYesMust be true to copy the immutable library version.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds real behavior beyond the annotations: the write is immutable, it fails rather than overwriting an existing version, and it needs explicit confirmation. That is exactly the kind of non-obvious safety context the annotations (destructiveHint=false, idempotentHint=false) do not convey. It is consistent with idempotentHint=false, since a repeat publish cannot overwrite.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, with the core action first and the confirmation/immutability constraints immediately after. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it covers purpose, confirmation requirement, and overwrite policy. Minor gaps remain around what the library version is named or where it is stored, but not enough to mislead an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including detailed notes on preview_token, confirm_publish, idempotency_key and expected_cep_target, so the schema carries the parameter burden. The description adds nothing parameter-specific beyond the implicit link between 'previewed' and preview_token, which meets the baseline for a fully documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Publish') and resource ('the exact previewed MOGRT as an immutable local-library version'), so the action is unambiguous. It implies the preview_mogrt_library_publish dependency but never names a sibling tool or explicitly contrasts against inspect_mogrt_library or import_mogrt_from_library.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Requires explicit confirmation' and 'exact previewed MOGRT' imply the preview-then-publish flow and the confirm flag, but there is no explicit when-to-use vs alternative guidance and no statement of what happens on the preview path instead. Usage is inferred rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rank_short_form_candidatesRank Short Form CandidatesA
Read-onlyIdempotent

Rank long-video transcript windows as short-form clip candidates using explainable local heuristics (hook, completeness, density, supplied evidence peaks, keywords, duration fit, speaker consistency) with overlap suppression. Local-only plan; not a virality prediction and never changes Premiere.

NameRequiredDescriptionDefault
keywordsNoTopic keywords or short phrases whose presence is rewarded.
frame_rateNoFrame rate used to snap start/end frames; defaults to 30.
hook_wordsNoExtra single-word hook tokens added to the built-in lexicon.
max_secondsNoLongest allowed candidate duration in seconds; defaults to 60.
min_secondsNoShortest allowed candidate duration in seconds; defaults to 15.
motion_peaksNoOptional source-time motion peaks from local analysis (for example detect_motion_peaks).
word_timelineYesCaller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them.
marker_secondsNoOptional source-time editor-flagged moments (markers).
max_candidatesNoMaximum candidates returned after overlap suppression; defaults to 8.
laughter_secondsNoOptional source-time laughter moments supplied by the caller.
audio_energy_peaksNoOptional source-time audio energy peaks from local analysis (for example detect_audio_transients).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description reinforces this with 'never changes Premiere,' while adding genuinely new context: the ranking is explainable local heuristics, not a virality prediction, with overlap suppression. It stops short of describing return shape, but the output schema covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first defines the operation and its heuristic basis, the second front-loads the critical scope constraints. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters, nested objects, and an output schema, the description supplies the essential framing (local-only, heuristic, non-mutating) and hedges against misuse as a virality predictor. The rich schema carries parameter detail, so this is close to complete, though it could clarify how optional evidence inputs affect results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description adds value by naming the heuristic dimensions that map to parameters (evidence peaks, keywords, duration fit, speaker consistency), helping the agent understand why those inputs matter. It doesn't explain defaults or ranges, which the schema handles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('rank') and resource ('long-video transcript windows as short-form clip candidates') and enumerates the exact heuristic factors used. An agent can distinguish this planning/ranking tool from sibling analysis and planning tools without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly scopes usage with 'Local-only plan; not a virality prediction and never changes Premiere,' telling the agent it is a non-mutating heuristic ranker. It doesn't explicitly name alternative siblings (e.g., plan_short_export_folder) or exclusions, so it stops short of full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

razor_all_tracksRazor All TracksA

Razor (split) all clips at the playhead position across all tracks, or at a specific time. A read-only preflight counts eligible track cuts; the host wait scales by that count (400 ms per cut plus 30 seconds headroom, capped at 15 minutes).

NameRequiredDescriptionDefault
track_typeNoWhich track types to razor (default: both)
time_secondsNoTime to razor at in seconds (uses playhead position if omitted)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only mark it as a non-read-only, non-destructive write. The description adds genuinely useful behavioral context beyond that: an internal read-only preflight counts eligible cuts, and the host wait scales linearly (400 ms per cut, 30 s headroom, 15 min cap), which is exactly the kind of latency expectation an agent needs. It does not say whether non-targeted/locked tracks are skipped, which is the remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the operation and its scope first, then the timing contract. No filler, and the most decision-relevant information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema and rich annotations, the description covers purpose, scope, and wait behavior sufficiently to invoke correctly. The one missing piece is eligibility semantics (targeted vs. all visible tracks, locked tracks) for a mutating multi-track operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so track_type, time_seconds, idempotency_key, and the CEP guard objects are already fully documented in the schema. The description only restates the playhead default, adding no new meaning; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (razor/split) and an explicit scope (all clips at the playhead across all tracks, or a given time), which inherently distinguishes it from the single-clip sibling split_clip. It stops short of naming that alternative, so the differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'or at a specific time' clause implies when to pass time_seconds versus relying on the playhead, and the all-tracks scope implies the multi-track use case. However, there is no explicit when-to-use/when-not guidance and no pointer to split_clip for a single clip.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_sequence_captionsRead Sequence CaptionsA
Read-onlyIdempotent

Diagnose whether the active Premiere scripting host can enumerate caption tracks. It never treats an empty result as proof that the sequence has no captions, because most CEP builds expose caption creation but not caption reads.

NameRequiredDescriptionDefault
sequence_idNoSequence ID or name. Defaults to the active sequence.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description does not need to restate safety. It adds real value by disclosing a non-obvious behavioral limit: empty results must not be treated as proof of no captions because most CEP builds expose caption creation but not caption reads.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the diagnostic purpose, followed by a high-value caveat. Every sentence earns its place and there is no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and the annotations cover safety. It is nearly complete for this focused read/diagnostic tool, though a brief pointer to fallback or alternative workflows when caption reads are unsupported would make it fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents sequence_id, expected_cep_target, and expected_project_path. The description does not add parameter-level meaning, which is acceptable at baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: diagnosing whether the active Premiere scripting host can enumerate caption tracks. That distinguishes it from creation-oriented siblings like create_caption_track, though it could state more explicitly that the tool attempts to read/list caption data rather than only probing capability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the diagnostic framing, but the description never explicitly names when to choose this tool over siblings such as create_caption_track or build_caption_artifact. The caveat about empty results is useful interpretation guidance, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_video_scopesRead Video ScopesB

Read waveform percentiles, RGB parade percentiles, saturation, and near-black/near-white RGB occupancy from one bounded decoded local-media frame. Read-only; this is a sampled analytical proxy, not Premiere's rendered scopes.

NameRequiredDescriptionDefault
use_cacheNoOpt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.
media_pathYesExisting local video file
time_secondsNoSource-relative frame time from 0 through 86400 seconds (default: 0)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
analysis_revisionNoOptional project/timeline revision to isolate otherwise-identical analysis inputs.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description asserts 'Read-only', but the annotations declare readOnlyHint=false and idempotentHint=false, a direct contradiction that an agent will hit when deciding whether a call needs confirmation. This is a genuine inconsistency even though the description is likely the accurate side (the schema itself says read-only invocations are never deduplicated).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, with the highest-value information (what is measured) front-loaded and the accuracy caveat second. No repetition of the title or the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description supplies the one thing the schema cannot: that results are a sampled analytical proxy rather than host-rendered scopes. Only the meaning of 'bounded' (e.g., the 256 MiB uncached threshold) is left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so media_path, time_seconds, use_cache, and the identity guards are already fully documented in the schema. The description contributes only the notion of a 'bounded decoded' frame, which loosely hints at size/decode limits, but adds nothing specific about the seven parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read) and enumerates the exact measurements returned: waveform percentiles, RGB parade percentiles, saturation, and near-black/near-white RGB occupancy. It also scopes the source precisely ('one bounded decoded local-media frame') and implicitly separates itself from the rendered-scopes sibling, though it never names `inspect_rendered_video_scopes` directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'not Premiere's rendered scopes' implies when this tool is the right choice (sampled proxy analysis on a local file vs. host-rendered scopes), but no explicit when-to-use/when-not statement or named alternative is given. An agent must infer the routing decision from the caveat alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redoRedoA

EXPERIMENTAL (undocumented QE DOM: qe.project.redo / undoStackIndex). Redo the most recently undone Premiere project action(s) through QE, checked step by step against Premiere's undo-stack position (stackVerified; the timeline itself is not read back). To restore a tool call undone with undo, pass the same count. Observed marker boundaries refuse before any step; acknowledge_untracked_markers:true permits prior non-marker actions, without proving marker reversal.

NameRequiredDescriptionDefault
countNoNumber of redo steps (default: 1)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_undo_stack_indexYesRequired safety guard: the undoStackIndexAfter reported by the undo you want to redo. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. The guard compares the position only; matching position cannot prove which action is on top.
acknowledge_untracked_markersNoExplicitly acknowledge that QE steps reverse or restore prior non-marker actions, because marker reversal is not verified. Default false; marker boundaries refuse the entire request before any step.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: it flags the tool as EXPERIMENTAL and built on undocumented QE DOM (qe.project.redo / undoStackIndex), notes that verification is only against undo-stack position and that the timeline is not read back, and warns that marker reversal is not proven. These are exactly the risk disclosures an agent needs for a state-mutating tool whose annotations only say non-readOnly and non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the experimental/QE caveat, then the core action, then the guard and refusal semantics — every clause carries operational weight. The density of parentheticals makes it slightly harder to scan, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 6-parameter mutation tool with nested guard objects, the description covers mechanism, verification limits, and refusal behavior, and an output schema exists to explain return values. Minor gap: it does not explain the idempotency_key/retry model, leaving that entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds meaning the schema does not: `count` must match the count used in the original `undo` call, and `acknowledge_untracked_markers` permits prior non-marker actions without proving marker reversal. The required `expected_undo_stack_index` guard is named but its detailed semantics live in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (redo) plus the precise resource (the most recently undone Premiere project action(s)) and the mechanism (QE). It is clearly separable from the `undo` sibling by the 'most recently undone' framing and the note about restoring a tool call undone with undo.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage context: 'To restore a tool call undone with undo, pass the same count,' which cross-links the sibling tool and the required coupling. It also states refusal conditions (observed marker boundaries) and the opt-in escape (acknowledge_untracked_markers:true). It stops short of a full when-to-prefer-undo-vs-redo rule, so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_mediaRefresh MediaA

Refresh a project item to pick up changes to the source file. The interpreted frame rate is read before and after; if the refresh leaves an implausible rate (seen on stills, e.g. 29.97 becoming 2.75e-8), the previous rate is restored and read back. Reports frameRateBefore, frameRateAfter and repaired.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the item to refresh
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior: the rate is sampled before and after, an implausible result triggers a rollback, and the tool reports frameRateBefore/frameRateAfter/repaired — a side effect an agent could not infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action and then the notable guard behavior, with no filler. It is dense but each clause carries information; only the parenthetical example (29.97 becoming 2.75e-8) is arguably optional detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the return fields need no explanation, and the schema fully documents the four parameters including the nested CEP guard objects. The description covers the mutation and its repair semantics well; the guard parameters' preflight refusal behavior is only in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter (item_id, idempotency_key, expected_cep_target, expected_project_path) carries detailed inline documentation, so the baseline of 3 applies. The description contributes no parameter-level meaning beyond that; its returned-field names describe output, not inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb and resource ('Refresh a project item') plus the reason ('pick up changes to the source file'), so its effect is clear. The sibling set contains close alternatives (relink_media, set_override_frame_rate, replace_clip_media), but the definition never names one to contrast against, so it falls short of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'pick up changes to the source file' implies the trigger — the media changed on disk and the item needs to be re-read. There is no explicit when-not, no prerequisite about needing changed source content, and no guidance to choose relink_media for moved media or set_override_frame_rate for a manual rate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_all_effectsRemove All EffectsA
Destructive

Remove every effect from a clip, keeping its built-in components (Opacity, Motion, Volume, Channel Volume, Panner), and verify the result. EXPERIMENTAL: when Premiere has no Component.remove() (25.2), it removes through the undocumented QE DOM's targeted qeClip.getComponentAt(i).remove(). Every matching component's removal path is checked before any is removed; it returns a capability error, with nothing changed, when neither path is available.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations (destructiveHint=true, idempotentHint=false) by disclosing the all-or-nothing pre-check ('Every matching component's removal path is checked before any is removed'), the capability-error path where nothing changes, and the experimental QE DOM fallback on Premiere 25.2. That is exactly the mutation-risk context an agent needs before running a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Action and built-in-component scope are front-loaded, then the experimental path is clearly gated behind an 'EXPERIMENTAL' marker. The QE DOM implementation detail (qeClip.getComponentAt(i).remove()) is dense but earns its place as behavioral risk disclosure rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given destructive annotations, a full output schema, and 100% schema coverage, the description supplies what structured fields cannot: what is preserved, atomicity, and the degraded-capability outcome. Only the sibling-routing question (vs. remove_effect) is left unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the four parameters (node_id, idempotency_key, expected_cep_target, expected_project_path) are fully documented in-schema, so the baseline of 3 applies. The description adds no param-level detail, such as how expected_cep_target ties to the verification step.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: 'Remove every effect from a clip', and adds the important qualifier that built-in components (Opacity, Motion, Volume, etc.) survive. Distinct from a single-effect removal tool by the word 'every', though it never names remove_effect or remove_effect_by_name as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the name and the 'every effect' scope; the description never says when to prefer this over remove_effect or remove_effect_by_name, nor does it state prerequisites (clip selected/mutated state). The failure mode is described, but tool-selection guidance is not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_effectRemove EffectA
Destructive

Remove one effect from a clip by its index or name (the last instance when names repeat) and verify the clip's components afterwards. Built-in components (Opacity, Motion, Volume, Channel Volume, Panner) cannot be removed. EXPERIMENTAL: when Premiere has no Component.remove() (25.2), it removes through the undocumented QE DOM's targeted qeClip.getComponentAt(i).remove(). Every matching component's removal path is checked before any is removed; it returns a capability error, with nothing changed, when neither path is available.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
effect_nameNoName of the effect to remove (alternative to effect_index)
effect_indexNoIndex of the effect to remove (0-based). Use get_clip_properties to see effects list.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the destructiveHint=true annotation: a post-removal verification of clip components, the undocumented QE DOM fallback path used when Component.remove() is unavailable in 25.2, and an atomicity guarantee — every matching component's removal path is checked first and a capability error is returned with nothing changed. That partial-failure semantics disclosure is exactly what an agent needs before a destructive call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight paragraph, front-loaded with the purpose, then constraints, then the experimental fallback caveat. Dense and slightly run-on in the EXPERIMENTAL sentence, but every clause carries operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full schema coverage, the description needn't explain returns or parameter formats; it still covers atomicity, built-in exclusions, and version-specific behavior. Remaining gaps (host/permission preconditions, how the post-removal verification is reported) are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real semantics the schema does not: effect_name resolves to the last matching instance when names repeat, and effect_index vs effect_name are alternatives. The idempotency_key and expected_* guard parameters are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (remove one effect from a clip) plus the selector (index or name) and the tie-break rule for duplicate names. An agent can distinguish it from remove_all_effects (all vs one) and remove_effect_by_name without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context — remove exactly one effect by index or name, with the last instance chosen when names repeat — and a when-not rule: built-in components (Opacity, Motion, Volume, Channel Volume, Panner) cannot be removed. It stops short of explicitly routing to siblings like remove_all_effects or remove_effect_by_name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_effect_by_nameRemove Effect By NameA
Destructive

Remove all instances of a specific effect from a clip by display name and verify the clip's components afterwards. EXPERIMENTAL: when Premiere has no Component.remove() (25.2), it removes through the undocumented QE DOM's targeted qeClip.getComponentAt(i).remove(). Every matching component's removal path is checked before any is removed; it returns a capability error, with nothing changed, when neither path is available.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
effect_nameYesDisplay name of the effect to remove
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, it discloses the experimental QE DOM fallback, preflight checking of every matching component's removal path, and atomic failure behavior via a capability error with nothing changed. This is exactly the kind of mutation detail an agent needs before invoking a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in the first sentence, followed by the experimental fallback and preflight atomicity detail. Every sentence contributes relevant behavioral information without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive effect-removal tool with rich schema and output schema, the description covers purpose, fallback behavior, preflight validation, and failure atomicity. Remaining parameter-level details are fully documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the nested guard and idempotency parameters are already documented. The description reinforces that effect_name is a display name and that removal targets a clip, but adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: remove all instances of a named effect from a clip, and verify components afterwards. It is clear enough to distinguish from generic removal, but it does not explicitly name or contrast with sibling tools such as remove_effect or remove_all_effects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how the tool works but gives no explicit guidance on when to choose it over remove_effect, remove_all_effects, or other effect tools. Any usage condition is left implicit in the phrase 'by display name'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_from_timelineRemove From TimelineA
Destructive

Remove a clip from the timeline. By default its linked audio/video partners go with it, as with Premiere's Clear on a linked clip. With ripple: true the gap is closed through the same explicit, verified ripple delete as ripple_delete (Premiere's own ripple flag does nothing on current builds), shifting sync-locked tracks so audio stays in sync.

NameRequiredDescriptionDefault
rippleNoWhether to ripple delete (close the gap). Default: false
node_idYesNode ID of the clip to remove
include_linkedNoAlso remove the clip's linked audio/video partners (default: true). A ripple removal always includes them, since closing the gap on one side only would desync the timeline.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
allow_large_rippleNoAllow a ripple above large_ripple_threshold after its read-only mover estimate.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
large_ripple_thresholdNoMover count above which ripple removal refuses unless allow_large_ripple is true (default: 400).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, it discloses that linked audio/video partners are removed by default, that ripple removal closes the gap by shifting sync-locked tracks, and that Premiere's native ripple flag is ineffective on current builds. These are important behavioral details for a destructive timeline edit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences with no filler. Each sentence adds relevant information: core action, default linked behavior, and ripple semantics/caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex, with eight parameters and nested guard objects, but the schema and output schema carry most of that detail. The description covers the essential clip-removal and ripple behavior; advanced guards like expected_cep_target and large_ripple_threshold are documented in the schema rather than the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds meaning for the ripple path by explaining sync-locked track shifting and by reinforcing the linked-partner default, going beyond the minimal schema wording for ripple.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Remove a clip from the timeline.' It also clarifies the default linked-clip behavior and the ripple variant, distinguishing it from a generic removal and referencing ripple_delete and Premiere's Clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the default behavior and the condition for ripple removal ('With ripple: true the gap is closed...'), which helps an agent choose between linked clear and ripple delete. It does not explicitly say when to prefer this over siblings such as remove_selected_clips or ripple_delete, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_keyframeRemove KeyframeA
Destructive

Remove the keyframe at a time from an effect property and read the remaining keys back. Refuses, changing nothing, when no key is within 0.01s of that time.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
effect_nameYesDisplay name of the effect
time_secondsYesSeconds from the clip's start on the timeline (0 is the clip's first frame) of the keyframe to remove
property_nameYesDisplay name of the property
property_indexNoOptional property index from get_effect_properties; required when property_name is duplicated.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuinely new behavior: a 0.01s matching tolerance and a no-op refusal that changes nothing when nothing matches, which tells the agent how to react to a failed match. It stops short of describing the returned keyframe payload or how a near-miss is reported.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. The core action and the readback come first, and the failure/refusal condition follows, so the highest-value information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and the guard/idempotency parameters are fully documented in-schema. What remains thin is the operational context for a destructive edit: no mention that the property must be keyframed, no note that the time domain is clip-relative beyond what the schema says, and no hint about verifying with get_keyframes afterward.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all 8 parameters (including property_index, idempotency_key, and the expected_cep_target guard) are documented in the schema. The description only alludes to "a time" and "an effect property", adding no semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (remove) and resource (the keyframe at a time on an effect property), plus the readback of remaining keys. The singular "the keyframe at a time" implicitly separates it from remove_keyframe_range and add_keyframe, but no sibling is named explicitly, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent can infer this is for deleting one keyframe rather than a range. There is no explicit guidance on when to prefer it over remove_keyframe_range or set_keyframe_interpolation, and no prerequisites (edit mode, effect applied, property keyframable) are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_keyframe_rangeRemove Keyframe RangeA
Destructive

Remove every keyframe in a time range (inclusive) from an effect property and read the remaining keys back. Refuses, changing nothing, when the range holds no key.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
effect_nameYesDisplay name of the effect
end_secondsYesEnd of the range, in seconds from the clip's start; must not be before start_seconds
property_nameYesDisplay name of the property
start_secondsYesStart of the range: seconds from the clip's start on the timeline (0 is the clip's first frame)
property_indexNoOptional property index from get_effect_properties; required when property_name is duplicated.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, so safety is covered; the description adds genuinely new behavior beyond that — range is inclusive, the call is atomic (refuses and changes nothing on empty match), and it reads remaining keys back after mutation. It does not mention the expected_cep_target guard or the interaction between its idempotency_key and the declared idempotentHint=false, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the primary action is front-loaded before the refusal condition. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it correctly limits itself to the mutation and its no-op case. For a 9-parameter destructive tool with nested CEP-identity guards, it omits any mention of those guard parameters or of what happens when the property name is ambiguous — the schema covers them, but a brief pointer would complete the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents node_id, effect_name, property_name, the seconds bounds, property_index fallback, and the optional identity guards. The description only adds the word 'inclusive' for the range semantics; it says nothing about property_index disambiguation or the guard parameters, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (remove), a specific resource (keyframes on an effect property) and a scoping constraint (a time range, inclusive), which cleanly separates it from the sibling single-key remove_keyframe and from get_keyframes. The refusal condition is stated in the same breath, so an agent knows the outcome domain without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete usage boundary: it refuses and changes nothing when the range contains no keyframe, which tells the agent this is a safe bulk delete in the no-op case. It never explicitly names alternatives (remove_keyframe for a single key) or prerequisites such as resolving property_index before calling, 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.

remove_selected_clipsRemove Selected ClipsA
Destructive

Remove all currently selected clips and verify their absence. Ripple requests are refused because the CEP removal call cannot reliably close gaps; use a guarded ripple-range tool instead.

NameRequiredDescriptionDefault
rippleNoRipple removal is unsupported and refused before editing. Default: false
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false; the description adds value by stating it verifies the clips' absence afterwards (a postcondition the annotations do not convey) and by explaining WHY ripple is refused — the CEP removal call 'cannot reliably close gaps'. It does not mention behavior when nothing is selected or how partial failures surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, and the core action is front-loaded ahead of the ripple caveat. Every clause earns its place by either defining scope or preventing a known misuse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, no-required-param, output-schema-bearing tool, the description supplies what structured fields cannot: the post-edit verification guarantee and the reason ripple is unavailable. Guard and idempotency semantics are fully documented in the schema, so nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with rich per-parameter docs, so the schema carries the parameter burden and baseline 3 applies. The description's only parameter-related claim (ripple is refused) merely restates the schema's own 'Ripple removal is unsupported and refused before editing' and adds no syntax or format guidance for idempotency_key or the expected_cep_target guard.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('remove all currently selected clips') with the scope limit 'currently selected' — distinguishing it from sibling tools that take explicit clip targets (remove_from_timeline, remove_from_timeline). It also names the tool family it is not (ripple removal) and points to the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly rules out ripple requests and directs the caller to 'a guarded ripple-range tool instead' (ripple_remove_timeline_ranges / ripple_delete). It does not, however, contrast against lift_selection/extract_selection or explain the precondition that a selection must exist, so the routing is strong on one axis but incomplete on the other.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rename_binRename BinB

Rename a bin (folder) in the project panel

NameRequiredDescriptionDefault
bin_idYesName or node ID of the bin to rename
new_nameYesNew name for the bin
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, non-idempotent mutation. The description adds only the project-panel location and does not mention preconditions, name-collision behavior, or the optional idempotency/guard parameters that materially affect invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. Every word contributes to identifying the operation and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and very detailed input schema cover return values and parameter semantics, so the description need not explain those. However, for a mutation with nested guard parameters and idempotency behavior, the one-line description does little to orient the agent beyond the operation name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents bin_id, new_name, idempotency_key, and expected CEP/project guards in detail. The description adds no parameter-level meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Rename a bin (folder)' and locates it in the project panel. It is clear enough to distinguish bins from general project items, but it does not explicitly mention the nearby sibling rename_project_item to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives no guidance on when to use this instead of rename_project_item, batch_rename_clips, or move_items_to_bin. The only implied usage is the operation name itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rename_clipRename ClipB

Rename a clip on the timeline and verify the new name.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
new_nameYesNew name for the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation profile is known. The phrase "verify the new name" adds genuine behavioral value by signaling a post-condition check, but the description says nothing about the reviewed-identity guards (expected_cep_target, expected_project_path) or idempotency replay semantics — all left entirely to 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; both clauses (rename, verify) earn their place. It is arguably too terse for the tool's complexity, but nothing is padded or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema, full annotation set, and 100% schema coverage carry most of the burden, so the thin description is defensible. Still, for a 5-parameter mutation with nested guard objects, it omits when the tool should be preferred over batch or project-item renames and what a failed verification implies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including exhaustive docs for idempotency_key and the expected_cep_target guard object, so the baseline is 3. The description contributes no additional parameter meaning beyond noting that a name is involved.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Rename a clip on the timeline") plus an outcome ("verify the new name"), so the agent knows this is a single-clip rename with read-back. It partially differentiates from siblings like rename_project_item, rename_bin, and rename_track by scoping to the timeline clip, but never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no mention of clearly relevant siblings such as batch_rename_clips (for multiple clips) or rename_project_item (for source-side items). The agent must infer selection from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rename_project_itemRename Project ItemC

Rename a project item in the project panel.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
new_nameYesNew name for the item
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the lower bar applies, but the description adds essentially nothing. It does not say whether the underlying media file on disk is renamed or only the project-panel label, whether extensions are preserved, or whether existing references break — the questions a renamer actually raises.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, which is good structure. It is arguably over-terse rather than wasteful, so it earns a 4 rather than a 5 for economy alone.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a mutation tool with five parameters including nested guard objects, an output schema, and a dedicated idempotency_key, yet the description never mentions retry semantics, the expected_cep_target/expected_project_path preflight guards, or failure behavior. For a tool of this complexity, one sentence is not sufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies; item_id, new_name, idempotency_key, and the two expectation guards are all documented in the schema. The description contributes no additional parameter meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Rename') and resource ('project item in the project panel'), so an agent knows exactly what it does. However, it does not distinguish this tool from sibling renamers such as rename_bin, rename_clip, rename_track, or batch_rename_clips, leaving the agent to infer that this one targets project-panel items specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives. The 'project panel' phrasing weakly implies scope, but nothing tells the agent to prefer rename_clip or rename_bin for other resource types, or what preconditions exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rename_trackRename TrackC

Rename a video or audio track.

NameRequiredDescriptionDefault
nameYesNew track name
track_typeYesTrack type
track_indexYesTrack index (0-based)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the safety profile is covered, but the description adds nothing beyond them: no statement about undoability, whether an existing name is overwritten, or what happens on an out-of-range track_index. The rich idempotency_key semantics live only in 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, and the resource is stated first. Brevity here is efficient rather than padded, though it borders on underspecified for a mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter mutation with nested identity-guard objects, this one-liner omits essential context: which sequence/track is affected, whether the rename is undoable, and any behavioral note on expected_cep_target or expected_project_path preconditions. The output schema covers return values, but the invocation context is not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters (including the nested expected_cep_target guard and idempotency_key) are documented in the schema itself. The description's mention of 'video or audio' merely restates the track_type enum, so it neither adds nor subtracts value — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Rename') and a distinct resource ('a video or audio track'), which separates it from the many clip/bin/project-item rename siblings. It is clear but does not explicitly contrast with those alternatives or state scope (active sequence? track anywhere?).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus rename_clip, rename_bin, rename_project_item, or batch_rename_clips, and no mention of prerequisites such as an open sequence or a targeted track. The agent must infer everything from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replace_clipReplace ClipA

Replace one timeline clip with a different project item on the same track, keeping the exact timeline start and end. The replacement plays from its own In mark for the original clip's duration; neighbouring clips do not ripple, and a linked partner clip on another track is left in place. The replacement must carry only the track's media type (for example a still or video-only item on a video track): Premiere's overwrite would also place an item's other media on another track. Checks the replacement accepts the source range before removing anything. Refuses without changing anything when the track is locked. Reads the track back: verified when the new clip covers the same span, committed_unverified when the span holds but the source In point cannot be confirmed, otherwise failure with Undo guidance.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip to replace
new_item_idYesNode ID or name of the new project item to replace with
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses ordering (validate the replacement's source range before removing anything), a hard refusal when the track is locked, a media-type precondition tied to Premiere's overwrite behavior, and three read-back outcome states (verified / committed_unverified / failure with Undo guidance). That is exactly the kind of extra context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the key invariant (same span, no ripple) are front-loaded, and every subsequent sentence adds a real behavioral fact. It is dense and long for a single paragraph, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation with an output schema present, it covers preconditions, abort semantics, post-write verification and failure recovery. It leaves one notable gap: whether the original clip's effects/attributes survive the swap, and how it differs from the very similarly named replace_clip_media sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id, new_item_id, idempotency_key and expected_cep_target are already documented in the schema. The description adds no parameter-level detail (e.g. whether new_item_id accepts a name, or the role of the identity guard), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource: swap one timeline clip for a project item on the same track while preserving the exact start/end. The 'no ripple, linked partner stays put, span preserved' framing clearly separates it from overwrite_clip or insert-style tools. It never names a sibling (notably replace_clip_media, which sounds nearly identical), so differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the constraints: use this when you want new media in the same span without shifting neighbors, and only when the replacement's media type matches the track. There is no explicit when-to-use vs. when-not or a named alternative (e.g. replace_clip_media, overwrite_clip), so the agent must infer routing from semantics alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replace_clip_mediaReplace Clip MediaB

Unavailable by design: the legacy ExtendScript overwrite route cannot prove that replacing media preserves the original clip's trim, position, linked audio, or adjacent clips, so this tool performs no mutation.

NameRequiredDescriptionDefault
new_item_idYesNode ID or name of the new source project item
clip_node_idYesNode ID of the timeline clip to replace media on
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Substantively the description is unusually forthcoming: it explains why the legacy ExtendScript overwrite route is unsafe (cannot prove preservation of trim, position, linked audio, adjacent clips) and that no mutation occurs. That disclosure conflicts with the annotations, which declare readOnlyHint=false and idempotentHint=false for a tool the text says never modifies anything; an agent trusting the annotations would treat this as a mutating operation. The mismatch caps the score despite the quality of the prose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with 'Unavailable by design', followed by the minimal justification needed. Nothing is padded and the critical fact arrives first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a disabled stub with a rich output schema, the description covers the essential facts: it is not usable and why. It stops short of stating what a call actually returns (a refusal error with a code, per the annotation/error conventions referenced elsewhere in the param docs), which an agent probing capability needs to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (clip_node_id, new_item_id, idempotency_key, expected_cep_target, expected_project_path) is documented in the schema, so the baseline is 3. The description adds nothing about parameters, and notably never says whether the required clip_node_id/new_item_id are accepted-but-ignored or rejected outright - a one-clause clarification would have earned a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the tool's subject (replacing media on a clip) and states plainly that the capability is disabled, so an agent immediately knows what this tool would do and that it will not do it. It does not name the sibling that handles replacement instead (replace_clip / overwrite_clip), so it stops just short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Unavailable by design ... performs no mutation' is a strong implicit 'do not call this' signal, which is the most important usage guidance here. However, it never tells the agent what to use instead - the sibling list contains replace_clip, overwrite_clip, and overwrite_from_source - so the routing decision 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.

retime_caption_fileRetime Caption FileA

Retime a local SRT/VTT file after ripple edits; Premiere captions do not follow ripple_remove_timeline_ranges or insert_from_source. Operations: shift, ripple_remove_ranges, ripple_insert, edit_cue. Keeps VTT header/NOTE/STYLE, cue settings, karaoke stamps; renumbers SRT. Local-only, never changes Premiere: re-import via create_caption_track, then reapply styling (get_caption_style_guidance).

NameRequiredDescriptionDefault
fpsNoOptional sequence frame rate (e.g. 23.976, 25, 29.97). When set, every output time and every removal range snaps to the nearest frame, matching ripple_remove_timeline_ranges; otherwise times round to milliseconds. Required for offset_frames and duration_frames.
textNoedit_cue: replacement cue text; separate lines with a newline. Blank lines and "-->" are rejected.
rangesNoripple_remove_ranges: removed timeline ranges in seconds, sorted and non-overlapping (the same ranges passed to ripple_remove_timeline_ranges; overlapping ranges are rejected, not merged).
contentNoInline SRT or VTT text. Provide exactly one of input_path or content. A UTF-8 BOM and CRLF line endings are accepted.
cue_indexNoedit_cue: 1-based cue position in file order (SRT numbers are ignored).
operationYesshift, ripple_remove_ranges, ripple_insert, or edit_cue.
at_secondsNoripple_insert: timeline time of the insert; cues starting at or after it move right.
input_pathNoAbsolute path of an existing .srt or .vtt file inside approved_workspace_path (realpath-checked, at most 2097152 bytes). Provide exactly one of input_path or content.
end_secondsNoedit_cue: new cue end in seconds; must be after the start.
output_pathNoOptional absolute .srt/.vtt path to write the result to. Requires approved_workspace_path; the parent must exist inside it and the file must not already exist (never overwritten).
from_secondsNoshift: only shift cues whose start is at or after this time; earlier cues stay put.
input_formatNoSyntax of the input. Defaults to the input_path extension, else VTT when content starts with WEBVTT, else SRT.
offset_framesNoshift: whole frames to add at fps (negative moves earlier).
output_formatNoFormat of the result (default: the output_path extension, else the input format). SRT output drops VTT header/NOTE/STYLE/REGION blocks, cue settings, identifiers, and karaoke timestamps, with warnings.
start_secondsNoedit_cue: new cue start in seconds.
offset_secondsNoshift: seconds to add (negative moves earlier). Cues ending at or before 0 are removed; cues crossing 0 are trimmed. Use exactly one of offset_seconds or offset_frames.
return_contentNoAlso return the retimed text inline when output_path is set (default false). Inline text is always returned without output_path, up to 512 KiB.
duration_framesNoripple_insert: inserted duration in whole frames at fps.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
straddle_policyNoripple_insert: a cue spanning at_seconds is split into two cues around the gap (split, default) or stretched across it (extend).
duration_secondsNoripple_insert: inserted duration in seconds. Use exactly one of duration_seconds or duration_frames.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathNoAbsolute existing directory that must contain input_path and output_path. Required when either path is given.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnly=false, destructive=false, idempotent=false, openWorld=false, so the description adds real value: it declares 'never changes Premiere' (local-only scope), discloses what is preserved (VTT header/NOTE/STYLE, cue settings, karaoke stamps, SRT renumbering), and prescribes the re-import path. It does not mention write-side safety beyond that, but the schema's output_path 'never overwritten' rule covers the destructive surface. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact paragraph that leads with the verb+resource, then the motivating constraint, then the operation list, then the preservation guarantees and handoff. Every clause carries information; none restates the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 24 parameters, a nested schema, and an output schema, the description correctly focuses on scope, side effects, and workflow rather than return values. It does not address the file-vs-inline output choice or the idempotency semantics, but those are fully documented in the schema. Adequate for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and per-parameter descriptions already tie each parameter to its operation (e.g. from_seconds→shift, ranges→ripple_remove_ranges), so the description only needs to match that baseline. Its contribution is naming the four operation modes, which the schema enum already lists with an equally terse description. Nothing extra on parameter interaction is added beyond what is structured.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Retime a local SRT/VTT file after ripple edits') and immediately separates itself from Premiere-side caption behavior, which is the exact confusion an agent would have given the many caption/timeline siblings. Enumerating the four operations (shift, ripple_remove_ranges, ripple_insert, edit_cue) makes the scope concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the trigger condition ('after ripple edits') plus the reason the tool exists ('Premiere captions do not follow ripple_remove_timeline_ranges or insert_from_source'), and names the follow-up siblings (create_caption_track, get_caption_style_guidance). The agent knows when to use this and what to do next without inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_clipReverse ClipA

Unavailable: Premiere does not expose a supported scripting API for reversing a timeline clip's playback direction.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
reverseNoTrue to reverse, false for normal (default: true)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the single most important behavioral fact: the underlying host API does not exist, so the tool cannot perform its advertised effect. It does not say what actually happens on invocation (error code, no-op, or refusal) despite the schema carrying idempotency and CEP-identity guards that suggest a real mutation path. Annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) describe a hypothetical write operation rather than contradicting the text.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that leads with the operative word 'Unavailable:' so the agent learns the blocker before anything else. There is no filler and nothing to trim; for a stub entry this is exactly the right length and ordering.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an unavailable tool one sentence is defensible, and the output schema and fully-described parameters cover the rest. But context is thin for a 5-parameter write-shaped tool: it does not state the failure mode when called, nor redirect the agent to a viable alternative, which is the practical information a caller still needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id, reverse, idempotency_key, expected_cep_target and expected_project_path are already fully documented in structured fields. The description adds nothing about any of them and, notably, does not explain that reverse=false would restore normal playback. Baseline 3 is correct when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation (reversing a timeline clip's playback direction) and immediately negates it, so an agent knows precisely what this tool would do and that it is not offered. It is distinguishable from all siblings because none of them perform reversal. It stops short of 5 only because it never points at the closest functional substitute (speed_change / set_clip_speed_qe with negative speed).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the condition under which this tool is unusable ('Premiere does not expose a supported scripting API'), which functions as a blanket when-not-to-use signal. However, it gives no alternative route — an agent wanting a reversed clip is left to guess that speed_change with a negative value is the workaround. 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.

review_broll_placementsReview Broll PlacementsA
Read-onlyIdempotent

Review caller-proposed owned-footage B-roll picks with matched quote, reason, alternatives, source/sequence revisions and explicit decisions. Reject overlapping approved placements. Does not infer visual content, search stock, inspect track occupancy or insert clips.

NameRequiredDescriptionDefault
placementsYesCaller-proposed video-only B-roll placements with captured revisions.
rejected_idsNoExplicitly rejected entry IDs. Unselected entries remain pending.
selected_idsNoExplicitly approved entry IDs. Omit for an initial review; an empty array approves nothing.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_review_revisionNoRevision from the initial review; required when selecting or rejecting entries. A changed input requires a new review.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds important boundaries beyond that: it does not infer visual content, search stock, inspect track occupancy, or insert clips, and it rejects overlapping approved placements. It still leaves pending-entry handling and the revision gate to the schema, which keeps it from being fully exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences are front-loaded with the core action, followed by the overlap rule and the exclusion list. There is no redundant restatement of the schema or annotations, and every sentence adds selection or invocation value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a 6-parameter nested schema at 100% description coverage, an output schema, and annotations covering safety and idempotency, the description supplies the purpose, constraints, and boundaries an agent needs to select and call the tool correctly. Field-level and return-value details are appropriately left to the structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every field, including quote, reason, source/sequence revisions, and selected/rejected IDs, is already documented in structured data. The description summarizes those fields at a high level but adds no format or validation detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource, 'Review caller-proposed owned-footage B-roll picks', and enumerates the proposal elements it handles: matched quote, reason, alternatives, source/sequence revisions, and explicit decisions. It also explicitly excludes adjacent operations such as visual inference, stock search, track-occupancy inspection, and clip insertion, so an agent can distinguish it from search and insertion siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is clear: caller-proposed owned-footage B-roll picks are reviewed here, and overlapping approved placements are rejected. It also names what the tool is not for, but it stops short of naming the specific sibling tools to use for stock search or insertion, so the guidance is strong rather than exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_dialogue_candidatesReview Dialogue CandidatesA
Read-onlyIdempotent

Review revision-bound dialogue candidates with surrounding words, silence padding, explicit keep/reject decisions and unioned source-time removal duration. Recomputed review revisions reject stale selections. Local-only; no timeline mapping, transcription or mutation.

NameRequiredDescriptionDefault
segmentsYesCaptured transcript segments; each source must have one consistent revision.
filler_wordsNoExact filler words or phrases to flag for whole-segment review.
rejected_idsNoExplicitly rejected entry IDs. Unselected entries remain pending.
selected_idsNoExplicitly approved entry IDs. Omit for an initial review; an empty array approves nothing.
silence_rangesNoSupplied local silence evidence; every source must occur in segments.
padding_secondsNoSpeech retained at both edges of silence cuts; defaults to 0.1 seconds. Does not alter filler-word ranges.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
minimum_silence_secondsNoMinimum silence duration; defaults to 0.7.
expected_review_revisionNoRevision from the initial review; required when selecting or rejecting entries. A changed input requires a new review.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, local behavior. The description adds useful context beyond that: revision-bound review, stale-selection invalidation, unioned source-time removal duration, and explicit exclusions of timeline mapping, transcription, and mutation. It does not describe error behavior beyond stale revisions, keeping it below the top score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, beginning with the core action and then adding revision and scope constraints. Every sentence contributes distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex nested schema and existing output schema, the description covers the key review semantics, stale-revision behavior, and local-only boundaries. It leaves parameter-level details to the schema, which is appropriate, though the workflow context for a first review versus subsequent decisions could be clearer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already well documented. The description adds conceptual context for keep/reject decisions and silence padding, but it does not explain specific parameter interactions or names beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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: reviewing revision-bound dialogue candidates, including keep/reject decisions and silence handling. It is distinguishable from generic analysis tools, but it does not explicitly name sibling alternatives such as analyze_dialogue_edit_candidates or plan_filler_word_removal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through phrases like "explicit keep/reject decisions" and "recomputed review revisions reject stale selections," and the local-only scope is stated. However, it does not explicitly say when to choose this tool over related dialogue-analysis or removal-planning siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_quote_paper_editReview Quote Paper EditA
Read-onlyIdempotent

Review a transcript quote library, explicitly order approved quotes, and return running timings and a formula-neutralized CSV paper edit inline. Local-only; no files, provider calls or multi-source timeline assembly.

NameRequiredDescriptionDefault
segmentsYesQuote library with captured transcript revisions and source ranges.
quote_orderNoExplicitly approved quote IDs in final paper-edit order. Omit for an unapproved library preview.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_review_revisionNoRevision from the initial review; required when selecting or rejecting entries. A changed input requires a new review.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, and closed-world behavior. The description adds meaningful behavioral context by stating it is local-only, makes no files or provider calls, avoids multi-source timeline assembly, and returns the paper edit inline rather than writing files.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the core action and output, followed by a useful scope boundary. There is no redundant restatement of the title or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema, output schema, and annotations, the description supplies the key behavioral boundary and output shape an agent needs. It leaves routing against similar review/planning tools implicit, but the structured fields carry the detailed parameter and validation semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the detailed nested parameter semantics are already documented in the schema. The description only loosely maps to segments and quote_order via 'transcript quote library' and 'explicitly order approved quotes,' adding little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (transcript quote library), the ordering/preview action, and the produced artifact (running timings plus a formula-neutralized CSV paper edit inline). It also scopes itself as local-only and excludes files, provider calls, and multi-source timeline assembly, though it does not name a sibling alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool is for reviewing a quote library, but does not say when to use it versus related tools such as dialogue candidate review or edit-plan preview tools. The only usage boundary is the local-only/no-provider-calls exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_sync_evidenceReview Sync EvidenceA
Read-onlyIdempotent

Review caller-supplied camera/recorder offset estimates for independent-method agreement, confidence and conflicting alternatives. All matches require selection; conflicting matches cannot be approved. Does not analyze audio, calibrate confidence or synchronize Premiere.

NameRequiredDescriptionDefault
matchesYesCamera-recorder proposals from already captured local analysis.
rejected_idsNoExplicitly rejected entry IDs. Unselected entries remain pending.
selected_idsNoExplicitly approved entry IDs. Omit for an initial review; an empty array approves nothing.
minimum_confidenceNoRequired confidence on every estimate to label strong agreement; all matches still need approval.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_review_revisionNoRevision from the initial review; required when selecting or rejecting entries. A changed input requires a new review.
agreement_tolerance_secondsNoMaximum spread between methods for agreement; defaults to 0.04 seconds.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds behavioral substance beyond that: every match must be explicitly resolved, conflicts block approval, and confidence values are caller-supplied rather than tool-calibrated. It does not describe the shape of the review result, but the output schema carries that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the action and its criteria come first, the required selection rule second, and the negative scope last. No filler and nothing that merely restates the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema, dense annotations and 100% parameter coverage, the description only needs to frame purpose and rules, and it does. A slight gap is that it never frames the two-step flow (initial review producing expected_review_revision, then a follow-up call to select/reject), which lives only in schema field text.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including rich per-field descriptions for estimates, confidence, agreement_tolerance_seconds and the revision guard, so the schema does the heavy lifting. The description reinforces that confidence is caller-supplied and uncalibrated, but adds no syntax or semantics beyond the schema. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Review caller-supplied camera/recorder offset estimates') and enumerates the review criteria: independent-method agreement, confidence, and conflicting alternatives. It also draws a hard negative boundary ('Does not analyze audio, calibrate confidence or synchronize Premiere'), which separates it from sync/analysis siblings without needing a schema read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It establishes the operating context clearly: input comes from 'already captured local analysis' and the tool only evaluates it. The exclusions in the last sentence tell the agent when not to use this tool, and 'All matches require selection; conflicting matches cannot be approved' conveys the workflow rule. It stops short of naming specific alternatives it hands off to (e.g. the planning/sync tools), so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_text_changesReview Text ChangesA
Read-onlyIdempotent

Preview literal replacements or supplied copy changes for inspected MOGRT text and supplied caption artifacts. Preserve original text and evidence revisions with explicit approve/reject decisions. Does not translate, access native graphics/caption text or apply changes.

NameRequiredDescriptionDefault
entriesYesBounded copy-review entries; original text is preserved for later comparison.
find_textNoOptional literal, case-sensitive search; regex is not executed.
rejected_idsNoExplicitly rejected entry IDs. Unselected entries remain pending.
replace_textNoLiteral replacement, required together with find_text. Dollar signs have no special meaning.
selected_idsNoExplicitly approved entry IDs. Omit for an initial review; an empty array approves nothing.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_review_revisionNoRevision from the initial review; required when selecting or rejecting entries. A changed input requires a new review.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint true and destructiveHint false; the description adds real value beyond them by stating originals are preserved, revisions are recorded as evidence, and decisions must be explicit approve/reject. It also adds negative scope (no translation, no native graphics/caption access, no application), though it doesn't discuss failure modes such as stale revisions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences, front-loaded with the core action and followed by preservation guarantees and negative scope. 'Supplied copy changes' is slightly vague phrasing, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, nested-schema read-only tool with an output schema and full annotation coverage, the description supplies the missing conceptual layer: what the entries represent, the approve/reject model, and what the tool deliberately will not touch. Nothing an agent needs to select or correctly frame a call is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the nested entry fields already document id/kind/target_id/original_text/proposed_text/source_revision semantics. The description adds only the workflow framing (preview then approve/reject) and does not clarify the find_text/replace_text pairing or the expected_* guards beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (preview) and resource (literal replacements / supplied copy changes for MOGRT text and caption artifacts), plus explicit exclusions ('Does not translate, access native graphics/caption text or apply changes'). It does not name the sibling that applies the changes, so an agent still has to infer that gap, but the scope is otherwise unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Makes clear this is a preview step that preserves originals and requires explicit approve/reject decisions, and that it does not apply changes, so the agent knows this is the review phase, not the mutation phase. It stops short of naming which sibling performs the actual mutation, leaving that 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.

ripple_deleteRipple DeleteA
Destructive

Remove a clip and close the gap it leaves, shifting later clips earlier on the clip's own track and on every sync-locked track so audio stays in sync. With the default scope the clip's linked audio/video partners are removed with it and their tracks close up too, even when not sync-locked; with scope 'own_track' the partners stay in place (reported as linkedPartnersKept). Premiere's QE rippleDelete() and the DOM's rippleEdit flag are both non-functional on 26.x, so this is done explicitly and verified. Refuses without changing anything if a clip on a participating track straddles the ripple point or sits inside the range being closed.

NameRequiredDescriptionDefault
scopeNoWhich tracks shift: 'sync_locked' (default) shifts the clip's track plus every sync-locked track, matching Premiere's ripple behaviour; 'own_track' shifts only the clip's own track and WILL desync other tracks.
dry_runNoValidate and report the shift plan without changing the timeline (default: false)
node_idYesNode ID of the clip to ripple delete
range_contentNoWhat to do about other clips on participating tracks that sit entirely inside the time range being closed (the usual case in a multicam-style sequence with aligned clips). With scope 'sync_locked' the clip's own linked audio/video partners are always removed with it, as in Premiere; with 'own_track' they are kept. 'refuse' (default) changes nothing and reports them; 'delete' also removes them, i.e. lifts that whole time segment out of every participating track and closes up. 'delete' is destructive across tracks -- the removed clips are listed in the result.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
allow_large_rippleNoAllow a ripple above large_ripple_threshold after its preflight estimate.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
large_ripple_thresholdNoMover count above which ripple_delete refuses unless allow_large_ripple is true (default: 400).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond destructiveHint=true annotations, it discloses the precise blast radius (own track plus sync-locked tracks, linked partners removed by default), that the operation is done explicitly because QE/DOM ripple is broken on 26.x, that it is verified, and that it refuses without changing anything in straddle/range cases. That is rich, non-redundant behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action in the first sentence, then scope nuances and the refusal guarantee. Four dense sentences with little waste, though the legacy QE/DOM note is background rather than call-critical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 params (mostly schema-documented), nested guards, and an output schema, the description covers the operation's semantics, defaults, and refusal safety well. It omits the idempotency key, dry_run, and large-ripple threshold mechanics, which the schema carries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description nonetheless adds meaning by framing scope as default-vs-own_track with the sync consequence and by linking the range-content behavior to the refusal rule and the linkedPartnersKept result. It stops short of covering dry_run, idempotency_key, or the expected_* guards.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+effect: 'Remove a clip and close the gap it leaves, shifting later clips earlier' on the clip's track and sync-locked tracks. This clearly distinguishes it from siblings like remove_selected_clips, lift_selection, extract_selection, and ripple_remove_timeline_ranges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the default scope behavior and the 'own_track' alternative with its consequence (partners kept, desync), plus the refusal condition when a clip straddles the ripple point. It does not explicitly name competing siblings for comparison, so an agent must infer which tool to pick versus lift/extract.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ripple_remove_timeline_rangesRipple Remove Timeline RangesA

Preview or apply a single-pass ripple removal for up to 50 sorted, non-overlapping timeline ranges on all unlocked, sync-locked tracks. Requires a preview confirmation token to apply. Integer frame rates only. The preview returns per-track counts and at most 50 planned-clip samples; clips fully inside ranges are removed. Large edits need allow_large_ripple: true.

NameRequiredDescriptionDefault
scopeYesAll participating tracks must be sync-locked and unlocked.
rangesYesSorted, non-overlapping timeline intervals to remove.
dry_runNoReturn bounded read-only counts and up to 50 plan samples; default true.
sequence_idNoSequence name or ID; defaults to the active sequence. It must be the active sequence, because the edit runs through QE; another sequence is refused without changes.
range_contentYesDelete clips fully inside each removed range.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
allow_large_rippleNoRequired when more than 400 clips will move.
confirmation_tokenNoSingle-use token from a successful dry run; required to apply.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses real behavior well (sync-locked/unlocked precondition, token requirement, integer frame rates only, bounded preview, clips fully inside ranges are removed), but 'clips fully inside ranges are removed' directly conflicts with the destructiveHint=false annotation, which asserts additive-only updates. An agent trusting the annotation could apply a clip-deleting edit without compensating caution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five tight sentences, front-loaded with the operation, its scope and its limits; each clause (range cap, sort/overlap rule, token, frame-rate limit, preview payload, large-edit gate) carries distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, yet the description still usefully bounds the preview payload (per-track counts, at most 50 samples). For a 10-parameter, nested-object mutation tool with optional CEP/project-path guards it is close to complete; it omits any mention of those identity guards, though the schema documents them fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents ranges, dry_run, confirmation_token, range_content and the large-edit gate; the description mostly restates these. The only genuinely additive facts are the integer-frame-rate constraint and the preview-then-apply token flow, which are not tied to specific parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('single-pass ripple removal for up to 50 ... timeline ranges') plus the exact scope ('all unlocked, sync-locked tracks'), which is enough to separate it from single-edit siblings like ripple_delete or trim_clip without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Preview or apply' plus 'Requires a preview confirmation token to apply' and 'Large edits need allow_large_ripple: true' give clear gating conditions for the two modes. It never explicitly names an alternative tool or states when *not* to use this instead of ripple_delete/lift_selection, so it stops 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.

roll_editRoll EditA

Perform a verified roll edit at the outgoing cut of a clip using the public timeline DOM, moving both visible edges and their source in/out points and verifying all four. Linked audio/video partners get the same edit by default (include_linked); every clip is checked before any is changed. Requires readable finite media and ffprobe duration evidence for every edited source; refuses unknown duration, stills, and nonunit/reversed speed before mutation. Existing host Out padding below one sequence frame may be preserved or reduced, but never used to create additional padding.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
include_linkedNoAlso apply the edit to the clip's linked audio/video partners so picture and sound stay in sync (default: true).
offset_secondsYesOffset in seconds (positive = roll right, negative = roll left)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety posture (readOnly false, destructive false, not idempotent); the description adds real behavioral detail: all-four-edge verification, preflight checking of every clip before any is changed, linked audio/video propagation by default, and the padding rule that existing sub-frame Out padding is never used to create new padding. These are non-obvious traits an agent could not infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the action and its verification, then constraints in decreasing importance. Dense but every clause is operational; the long compound sentences cost a little readability but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, nested-object mutation tool with an output schema, the description supplies the missing operational picture: preconditions, atomic preflight, linked-partner semantics, and padding edge cases. Return values are covered by the output schema, so nothing an agent needs to call it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the nested expected_cep_target/idempotency_key documentation is already thorough, so the schema carries the parameter burden. The description only reinforces include_linked's default and the direction convention of offset_seconds; it adds little about node_id, expected_cep_target, or expected_project_path.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('roll edit at the outgoing cut of a clip') plus the mechanism (public timeline DOM) and the exact effect (moves both visible edges and their source in/out points, verifies all four).'Roll edit' is itself a distinct operation name that separates it from slip_edit, slide_edit, and trim_clip in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives hard eligibility exclusions — refuses unknown duration, stills, and nonunit/reversed speed before mutation — and documents the default linked-partner behavior, which is decisive for invocation. It never routes the agent to a named alternative (e.g. slip_edit for source-only shifts), so it stops short of full when-to-use/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_projectSave ProjectA

Save the current Premiere Pro project to its existing path. Fails when the project has never been saved (use save_project_as) or when Premiere writes no non-empty file. Fresh disk metadata verifies a save; unchanged or unreadable metadata reports committed_unverified.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false, destructiveHint=false, idempotentHint=false; the description goes further, disclosing that a save is verified via fresh disk metadata and that unchanged/unreadable metadata yields a 'committed_unverified' outcome. That is meaningful behavioral context an agent cannot infer from 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no filler; the core action is front-loaded and the failure/verification notes follow. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-shape explanation is unnecessary, and the description covers the main precondition and verification outcome. It leaves the idempotency and expected-path guard semantics entirely to the schema, which is acceptable at 100% coverage but slightly reduces completeness for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters carry detailed descriptions (idempotency semantics, CEP identity guards, expected project path), so the baseline is 3. The description itself adds no parameter-specific meaning beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource -- 'Save the current Premiere Pro project to its existing path' -- and immediately names the sibling (save_project_as) used when the project is unsaved. An agent can distinguish it from save_project_as without inspecting any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly declares the in-scope case (existing path) and the exclusion with the alternative: 'Fails when the project has never been saved (use save_project_as)'. Also states the failure condition when Premiere writes no non-empty file, so the agent knows both when to call and when not to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_project_asSave Project AsA

Save the current project to a new .prproj path. Premiere then has the NEW copy open and closes the original, so later edits go to the copy; the result reports both paths. Fails when Premiere writes no file or leaves a pre-existing path unchanged. Use open_project to return to the original.

NameRequiredDescriptionDefault
pathYesFull file path to save the project to (e.g., '/Users/me/projects/MyProject.prproj')
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only give readOnly=false, destructive=false, idempotent=false. The description adds the genuinely non-obvious behavior: the original is closed and the new copy becomes active, so subsequent edits land on the copy, and the result reports both paths. It also discloses failure modes (no file written, pre-existing path left unchanged). This is exactly the context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with the action and its consequence, then failure conditions, then the escape hatch. No filler and every sentence carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a rich input schema, an output schema and annotations, the description covers the essential state changes, failure conditions and recovery path. The only minor gap is not stating what happens if the destination file already exists (overwrite vs. fail), which matters for a save-as operation, though 'leaves a pre-existing path unchanged' hints at the failure mode.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents path, idempotency_key, expected_cep_target and expected_project_path in detail. The description adds only that the target is a 'new .prproj path' and mentions the result reporting both paths, which is marginal beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Save the current project to a new .prproj path') and immediately distinguishes itself from save_project (in-place) and open_project (return) by describing the post-save project topology. An agent knows exactly what this does versus its nearest siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names open_project as the way back to the original, which is the key routing decision after this call, and states the failure conditions. It does not spell out when NOT to use it (e.g., for an in-place save use save_project), but the implied usage is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_workflow_checkpointSave Workflow CheckpointA

Persist version1 project/sequence checkpoint references and bounded operation receipt digests in the private bridge directory. Completed/pending/unknown/failed states survive server restart. No arguments or transcripts stored; no automatic replay or project restoration.

NameRequiredDescriptionDefault
checkpointYesStrict checkpoint: schema_version 1, project_id, sequence_id, snapshot_revision, backup_reference/null, sequence_checkpoint_reference/null, operations[{operation_id,tool,state,receipt_digest/null}]. No other fields.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which only say it is non-read-only, non-destructive, non-idempotent), the description discloses the storage location, that the four operation states survive a server restart, and what is deliberately NOT stored (arguments, transcripts) and NOT done (replay, restoration). That is genuinely useful context for a persisting write tool, though it omits any mention of the idempotency_key retry semantics that live in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action and location, followed by durability and then explicit exclusions. No filler and nothing repeated from the name or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and rich annotations already cover return values and safety, and the description fills in durability and non-storage guarantees for what is a complex, nested-object write tool. The remaining gap is sibling disambiguation rather than missing behavioral facts, so it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents checkpoint, idempotency_key and the optional guard objects in detail. The description adds only a light gloss ('version1 ... references and bounded operation receipt digests') and defers all field-level meaning to the schema, which is the baseline-3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Persist') plus a precise resource ('version1 project/sequence checkpoint references and bounded operation receipt digests') and even names the storage location ('private bridge directory'). It does not, however, distinguish itself from the confusingly similar siblings create_sequence_checkpoint and inspect_workflow_checkpoint, leaving the agent to infer the difference from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus create_sequence_checkpoint, list_sequence_checkpoints or inspect_workflow_checkpoint. The line 'no automatic replay or project restoration' hints at scope but is framed as a negative behavior, not as a routing rule, so the agent receives no explicit selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_edit_detectionScene Edit DetectionA

Perform Premiere's scene edit detection on the selected clips in the active sequence (it analyses the footage and can take minutes on long clips). CreateMarkers (default) puts Segmentation markers on the selected clips' source project items (shared by every sequence that uses them), removes duplicates this run created (markers that were already there are never deleted), and reports each detected cut in source and timeline seconds; it is verified only when at least one new marker was added. ApplyCuts razors the selected clips and verifies the clip count grew. EXPERIMENTAL QE: CreateMarkers records an observed marker boundary for guarded Undo/Redo; crossing it is refused by default, and unreadable history records unknown protection. This boundary does not verify native marker reversal.

NameRequiredDescriptionDefault
actionNoCreate markers (default) or apply cuts to the selected clips
sensitivityNoScene-detection sensitivity (default: MediumSensitivity)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
apply_cuts_to_linked_audioNoWhen applying cuts, also cut linked audio (default: false)

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: markers land on the source project items and are therefore shared by every sequence using them, duplicates created during this run are removed while pre-existing markers are never deleted, success is verified by 'at least one new marker' / clip count growth, and the QE undo boundary refusal behavior is disclosed. It also flags the runtime cost. The one thing an agent might misread is that ApplyCuts modifies the timeline despite destructiveHint=false, but the description discloses the razor action plainly rather than hiding it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the runtime warning are front-loaded, which is good, but the remainder is one very long, comma-heavy paragraph that mixes marker bookkeeping, verification criteria, and experimental QE undo semantics. Every sentence is informative but the density makes it hard to scan and the 'EXPERIMENTAL QE' segment is jargon-heavy relative to the agent's needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, and the description covers side effects, verification, and the expensive-operation caveat thoroughly for a mutating tool. The gap is sibling disambiguation against detect_scene_edits and detect_source_scene_changes, which matters given how many scene-related tools exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All six parameters have full schema descriptions (100% coverage), including the enum options and idempotency_key semantics, so the schema carries the load. The description adds only the default for action and the linked-audio behavior, which is the expected baseline when the schema is self-documenting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: run Premiere scene edit detection on selected clips in the active sequence, and spells out the two resulting modes (markers vs razor cuts). It never names the near-identical siblings detect_scene_edits / detect_source_scene_changes, so an agent cannot tell from the description alone which of the three to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Within the tool it is explicit: CreateMarkers is the default, ApplyCuts razors clips, and apply_cuts_to_linked_audio controls linked audio. It also warns the operation is expensive on long clips. It offers no guidance on choosing between this tool and the sibling scene-detection tools, which is the main missing piece.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_project_contextSearch Project ContextA
Read-onlyIdempotent

Search a durable Premiere project-context index for relevant sources, timeline placements, transcript passages, shots, audio observations, and notes. Returns bounded evidence with stable IDs and revisions; it never changes Premiere.

NameRequiredDescriptionDefault
kindsNoOptional context-kind filter
queryYesNatural-language or keyword query matched against indexed evidence
project_idYesProject context ID returned by manage_project_context capture
max_resultsNoMaximum 50; default 12
sequence_idNoOptional exact sequence ID filter
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/destructive=false, so the safety profile is covered. The description adds genuinely useful context beyond that: results are 'bounded', carry 'stable IDs and revisions', and the tool 'never changes Premiere' – which matters for downstream referencing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, with the non-mutation guarantee as the closing clause. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the nested expected_cep_target/expected_project_path guards are fully documented in the schema. The description covers scope and mutability; only sibling routing is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents query, project_id, kinds, max_results, sequence_id and the guard object. The description's enumeration of searchable categories loosely maps to the 'kinds' filter but adds no format or syntax detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('search a durable Premiere project-context index') and enumerates the evidence types retrieved, so an agent can tell this apart from live-Premiere lookups. It does not name the adjacent sibling (search_project_items / manage_project_context) in the description itself, leaving the boundary to be inferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage by describing an indexed evidence search and noting it never touches Premiere, which hints at when to prefer it over live inspection tools. There is no explicit when-to-use / when-not statement or named alternative, so the guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_project_itemsSearch Project ItemsA
Read-onlyIdempotent

Search for project items by name, media file extension, offline status, or color label. Returns matching items with full details.

NameRequiredDescriptionDefault
queryNoSearch query (matched against item name, case-insensitive substring match)
extensionNoFilter by file extension (e.g., 'mp4', 'wav', 'png'). Without dot.
item_typeNoFilter by item type (default: all)
color_labelNoFilter by color label index (0-15)
max_resultsNoMaximum results to return (default: 100)
offline_onlyNoIf true, only return offline/missing items
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds that matching items are returned with full details, but it does not mention pagination, performance characteristics, or any permission requirements. With the annotation coverage, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and front-loads the primary operation and criteria. Every phrase contributes to identifying what can be searched and what is returned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has eight parameters, including nested optional guard objects, but the schema is fully described and an output schema exists. The description covers the core search behavior and return shape adequately, though it does not mention item_type, max_results, or the optional guard parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters including the optional CEP guard fields. The description maps several searchable criteria to parameters such as query, extension, offline_only, and color_label, but adds no syntax or behavioral detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: search for project items. It enumerates searchable criteria (name, extension, offline status, color label), making the tool's scope clear. It does not explicitly differentiate itself from siblings such as list_project_items or find_project_item_by_name, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the listed criteria: an agent can infer this tool is for filtered project-item lookup. However, the description gives no explicit when-to-use guidance, when-not conditions, or named alternatives such as list_project_items or find_project_item_by_name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_workflow_recipesSearch Workflow RecipesA
Read-onlyIdempotent

Search audited built-in and explicitly supplied workspace-local workflow recipes. Recipes are declarative previews and cannot execute arbitrary tools or scripts.

NameRequiredDescriptionDefault
queryNoOptional case-insensitive title, description, tag, or ID query.
recipe_fileNoOptional contained JSON file with closed-schema custom recipes.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathNoAbsolute approved workspace containing recipe_file; required with recipe_file.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint=false, so safety is partly covered; the description nonetheless adds real value by stating that recipes are 'declarative previews' that 'cannot execute arbitrary tools or scripts', which is a genuine trust boundary an agent needs. It says nothing, however, about the containment rules for recipe_file, the approved_workspace_path requirement, or why a search tool carries an idempotency_key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, and the highest-value constraint (recipes cannot execute arbitrary tools or scripts) is front-loaded right after the purpose statement. Nothing repeats the title verbatim for its own sake.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety, a 100%-described schema, an output schema, and a short declarative-substitution tool, the description is close to sufficient. The main residual gap is that it does not tell the agent what a found recipe is for or which sibling to call next, which matters given the many overlapping planning/preview siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (including the nested expected_cep_target and the idempotency_key retry semantics) is already fully documented in the schema, making 3 the baseline. The description only loosely hints at recipe_file via 'explicitly supplied workspace-local' and adds no syntax or pairing details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Search ... workflow recipes') and scopes the search to two sources: audited built-ins and explicitly supplied workspace-local recipes. That is enough to distinguish it from execution/planning siblings, but it never names the obviously adjacent tool preview_workflow_recipe, so an agent must infer the search-then-preview relationship itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the phrase 'explicitly supplied workspace-local', which suggests you pass recipe_file when you have your own recipe. There is no explicit 'use this when...' guidance and no routing to preview_workflow_recipe or plan_cross_app_workflow, which are the natural follow-on steps after a search hit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_all_clipsSelect All ClipsB

Select all clips in the active sequence, or all clips on a specific track.

NameRequiredDescriptionDefault
track_typeNoTrack type (default: both)
track_indexNoSpecific track index (optional, selects all tracks if omitted)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the safety profile is broadly covered. The description adds the useful scoping fact that selection targets the active sequence, but omits key behavior: whether existing selection is replaced or extended, whether an active sequence must be open, and what the selection change affects downstream. It also leaves the idempotentHint=false surprising for an operation that is arguably repeatable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the two selection modes front-loaded and no filler. It is efficient, though arguably under-sized relative to the tool's complex precondition surface.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool carries five parameters including nested reviewed-identity guards, an idempotency key, and full schema documentation plus an output schema, yet the description never mentions that guard mismatches cause refusal, that selection state is mutated, or how it relates to the rich family of sibling selection tools. The output schema excuses return-value explanation, but the behavioral surface is not adequately framed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 restates the track_type/track_index behavior (all tracks when omitted is already in the schema) but says nothing about the heavy guard parameters (expected_cep_target, expected_project_path) or idempotency_key semantics, so it adds no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (select) and resource (clips) with clear scope: active sequence or a specific track. It does not differentiate from the many competing selection siblings (deselect_all_clips, invert_selection, select_clips_by_name, select_clips_by_color, select_clips_in_range, select_clips_by_pattern), so an agent must infer which selector to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Select all clips... or all clips on a specific track" implies the two usage modes but never states exclusions or names an alternative. With a dozen sibling selection tools in the list, the description gives no routing rule such as 'use select_clips_by_name for name filters' or 'use deselect_all_clips to clear'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_clips_by_colorSelect Clips By ColorA

Select clips by their source project item color label. CEP exposes no timeline track-item label getter, so timeline-specific labels cannot be matched.

NameRequiredDescriptionDefault
color_indexYesLabel color index (0=Violet, 1=Iris, 2=Caribbean, 3=Lavender, 4=Cerulean, 5=Forest, 6=Rose, 7=Mango, 8=Purple, 9=Blue, 10=Teal, 11=Magenta, 12=Tan, 13=Green, 14=Brown, 15=Yellow)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, and the description adds real context by explaining the CEP API limitation behind the matching scope. It does not disclose the key behavioral question for a selection tool: whether the existing selection is replaced or extended, which panel/sequence must be focused, or what happens when zero clips match.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. The core action is front-loaded and the caveat follows immediately; both sentences carry information an agent cannot get from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a filtered-selection tool whose annotations already carry the safety profile. Nothing an agent needs in order 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the full color-index enumeration and the idempotency/guard objects, so the schema does the heavy lifting and baseline 3 applies. The description adds marginal meaning by clarifying that color_index refers to the source project item's label rather than any timeline label.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ("Select clips by their source project item color label") and constrains the match key, which separates it from select_clips_by_name, select_clips_in_range and select_disabled_clips without opening their schemas. It stops short of explicitly naming those alternatives, and the scope (timeline clips filtered by their source item's label, vs. project panel items) is left slightly ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence supplies a valuable negative rule — timeline-specific labels cannot be matched, so this tool only works off source project-item colors — which steers an agent away from a wrong expectation. However, it gives no positive routing to the sibling selectors (by name, by pattern, in range) and states no prerequisite such as an open/active sequence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_clips_by_nameSelect Clips By NameA

Select all clips in the active sequence that match a name (substring match). Optionally filter by track type and index.

NameRequiredDescriptionDefault
nameYesClip name to search for (case-insensitive substring match)
track_typeNoTrack type to search (default: both)
track_indexNoSpecific track index to search (optional, searches all if omitted)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
add_to_selectionNoIf true, add to existing selection instead of replacing it (default: false)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose that this is not read-only, not destructive, and not idempotent. The description adds useful scope details—active sequence and substring matching—but does not explain key selection behavior such as whether the default replaces the existing selection, despite add_to_selection being a parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence states the core action and then the optional filters. There is no wasteful wording or buried information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema, output schema, and annotations, the description is sufficient for selecting clips by name and filtering tracks. It still omits the important default selection-replacement behavior, but that is documented in the add_to_selection parameter description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents name matching, track filters, idempotency, and guard parameters in detail. The description only reiterates optional track filtering and substring matching, adding little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: selecting clips in the active sequence by name substring. It clearly distinguishes the operation from read-only siblings like get_selected_clips and get_clip_at_position, though it does not explicitly contrast with other selection tools such as select_clips_by_pattern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied by the name and description: use this when you want to select clips matching a text substring. However, it gives no explicit when-not conditions, prerequisites, or named alternatives among the many selection-related sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_clips_by_patternSelect Clips By PatternA

Select every Nth clip (with an offset) among clips that match optional name, duration, time-range, track, and enabled filters, then read back the selection count. Covers 'select every other clip on V1' and similar repetitive selections without changing the timeline.

NameRequiredDescriptionDefault
offsetNoZero-based index of the first candidate to select (default 0). Must be below every_nth.
every_nthNoSelect one clip out of every N candidates (default 1 = all candidates).
name_regexNoCase-insensitive ECMAScript 3 compatible regular expression the clip name must match.
track_typeNoTrack type to scan (default video).
count_scopeNoWhether the Nth count restarts on each track (default) or runs across all scanned tracks in timeline order.
end_secondsNoOnly clips overlapping before this sequence time.
track_indexNoRestrict to one track index.
name_containsNoCase-insensitive substring the clip name must contain.
start_secondsNoOnly clips overlapping at or after this sequence time.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
add_to_selectionNoKeep the existing selection instead of replacing it (default false).
include_disabledNoInclude disabled clips as candidates (default true).
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
max_duration_secondsNoMaximum clip duration.
min_duration_secondsNoMinimum clip duration.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=false and readOnlyHint=false, and the description usefully reinforces the safe scope by saying it works 'without changing the timeline' and reports the selection count. It says nothing, however, about idempotency behavior, the CEP/UXP identity guard, or the replacement-vs-accumulate default beyond what the schema states, so added behavioral value is modest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste: the mechanism and filters come first, then the motivating example and the non-mutating guarantee. Nothing is repeated from the schema or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 16 parameters, a nested expected_cep_target guard, and an existing output schema, the description covers the conceptual essentials and leaves return-value explanation to the output schema. It omits any mention of the idempotency/precondition machinery, which is only a minor gap because the schema documents it in depth.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (including offset/every_nth bounds, count_scope, and the idempotency_key contract) is thoroughly documented in the schema. The description only summarizes the filter families already spelled out in the schema, adding no syntax or constraint detail beyond it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource (select clips) plus the distinctive mechanism (every Nth with offset) and every filter dimension, and gives a concrete example ('select every other clip on V1'). An agent can tell this apart from the sibling selectors (select_all_clips, select_clips_by_name, select_clips_in_range) purely from this text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear usage context — repetitive/patterned selections — and the example clarifies the intended scenario. It does not explicitly route an agent to the sibling alternatives (select_clips_by_name, select_clips_in_range, select_disabled_clips) or state when not to use it, so it stops short of full 5-level guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_clips_in_rangeSelect Clips In RangeA

Select all clips that overlap a time range in the active sequence.

NameRequiredDescriptionDefault
track_typeNoTrack type (default: both)
end_secondsYesEnd of selection range in seconds
track_indexNoSpecific track index (optional)
start_secondsYesStart of selection range in seconds
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the safety profile is covered. The description adds useful behavioral specifics: selection is based on overlap (not full containment) and is scoped to the active sequence. But it omits a key behavioral question for a selection tool – whether existing selection is replaced or extended – and says nothing about what happens with no matching clips.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the range and sequence scope come before any inferred behavior. Nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Wait – recalibrating: for a selection-mutation tool with a rich schema and an output schema present, the description covers what the tool does and the scope. The main gap is replace-vs-extend selection semantics, which is a moderate omission given the tool's simplicity. Score 4.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all 7 parameters richly documented, including track_type enum and the idempotency_key/expected_cep_target guard semantics. The description adds nothing about the track_type/track_index filtering options or the range semantics beyond what the schema already states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (select), resource (clips), and a precise qualifying condition (those that overlap a time range in the active sequence). This is clearly distinguishable from siblings like select_all_clips or select_clips_by_name once the description is read, though it doesn't explicitly name those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'overlap a time range in the active sequence' – an agent can infer this is the tool for range-based selection. However, no explicit when-to-use vs. when-not, no mention of the sibling selectors (by name, by color, by pattern, invert_selection), and no prerequisites stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_disabled_clipsSelect Disabled ClipsC

Select all disabled clips in the active sequence.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is covered. The description adds only the 'active sequence' scope; it never says whether the new selection replaces or extends the existing selection, nor what happens when no disabled clips exist — the one behavior that actually matters for a selection-mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. It is efficient, though it errs toward under-specification rather than over-length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a rich nested guard schema and an output schema, and the description does not connect to any of it — no mention of the expectation guards, idempotency, or what a successful selection means. For a stateful selection operation with three optional guard parameters, the prose is too thin to orient an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters (idempotency_key, expected_cep_target, expected_project_path) are optional with 100% schema description coverage, so the schema carries the full burden. The description mentions none of them, which is acceptable but adds no value; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Select all disabled clips') plus a scope ('in the active sequence'), so the operation is unambiguous. It does not differentiate itself from the many sibling selection tools (select_all_clips, select_clips_by_color, select_clips_in_range, invert_selection), which is what would be needed for a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to prefer this over select_all_clips, select_clips_by_pattern or select_clips_by_color, and no prerequisites such as requiring an open/active sequence. The agent must infer the choice from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_itemSelect ItemA

Select a project item and verify its node ID in the current Project-panel selection. Missing or unreadable selection readback remains committed_unverified.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item to select
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-destructive, non-read-only, non-idempotent behavior, and the description adds real postcondition detail: it verifies the node ID in the selection readback and documents that a missing/unreadable readback leaves state as 'committed_unverified.' That is useful behavioral context beyond what annotations provide, though it doesn't discuss how prior selection is affected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the core action front-loaded and the verification/failure caveat second. There is no filler or repetition of structured data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values needn't be explained, and the description covers the key mutation outcome and its 'committed_unverified' fallback state. It could go further on prerequisites (e.g., an open Project panel) and how existing selection is handled, but it is adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains item_id, idempotency_key, and the guard objects in depth. The description only implies that a node ID is involved and adds no syntax or edge-case meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Select') and resource ('project item') and scopes it to the 'Project-panel selection,' which implicitly distinguishes it from the many timeline-clip selection siblings. It stops short of naming any alternative tool, so an agent must infer the boundary rather than have it spelled out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is only an implied 'use this to select a project item' from the verb; the description gives no explicit when-to-use, when-not-to-use, or alternative-tool routing (e.g., versus set_clip_selection or select_all_clips). Like the calibration MID example, usage 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.

set_active_sequenceSet Active SequenceC

Set the active sequence by name or ID

NameRequiredDescriptionDefault
sequence_idYesSequence name or ID to make active
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the bar is lower, but the description adds nothing beyond them. It never mentions that this changes application-level editing context, what happens if the name is ambiguous or missing, or that the expected_cep_target/expected_project_path preconditions can cause a refusal before the change applies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero waste. It is however under-specified rather than genuinely concise for a mutation tool with precondition guards.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and annotations exist, so return values and safety need not be explained. But the tool has nested precondition guards whose failure modes (refusal on mismatched project path or CEP identity) materially affect invocation, and the description is silent on all of it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters (including the idempotency key and the two guard objects) are already documented in the schema. The description's 'by name or ID' adds only a slight restatement of the sequence_id schema text and says nothing about the guard parameters, which is acceptable given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (set the active sequence) and clarifies the accepted identifier forms. It does not differentiate itself from near neighbors such as get_active_sequence, open_project/close_sequence, or set_sequence_settings, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given, and no alternative is named. The reader is left to infer that this changes project-wide working context rather than sequence content, and nothing tells them whether the sequence must already be open or exist in the current project.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_all_tracks_targetedSet All Tracks TargetedA

Set all tracks targeted or untargeted. Useful before insert/overwrite edits. Reads back every affected track and reports verified only when all match the requested state.

NameRequiredDescriptionDefault
targetedYesWhether to target (true) or untarget (false) all tracks
track_typeNoWhich track type(s) to affect (default: both)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as a non-destructive, non-read-only mutation; the description goes beyond them by disclosing the read-back verification contract ('reports verified only when all match'), which tells the agent the result is confirmed rather than fire-and-forget. It stays silent on the idempotency_key behavior present in the schema, which would have been valuable for a mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: purpose, typical use site, and verification behavior, in that priority order. Nothing is redundant with the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation with five parameters including nested guards and an idempotency contract, the description covers purpose, use context, and result verification, and an output schema exists for return values. However, it omits that track_type can narrow the operation and says nothing about the idempotency/replay semantics an agent retrying a call needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains targeted, track_type, idempotency_key, and the expected_* guards. The description adds no syntax, defaults, or guard semantics beyond what the schema states, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and scope: set all tracks targeted or untargeted. The bulk 'all tracks' scope implicitly contrasts with the singular sibling set_target_track, but it never names that sibling, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Useful before insert/overwrite edits' gives a concrete, actionable usage context tied to sibling editing tools. It does not state when not to use it or name set_target_track as the per-track alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_anti_alias_qualitySet Anti Alias QualityB

Set the anti-alias quality on a clip's Motion effect (useful for scaled/rotated clips).

NameRequiredDescriptionDefault
enabledYesEnable (true) or disable (false) anti-aliasing
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds only that the mutation targets the Motion effect, implying that effect must exist, but it says nothing about failure when no Motion effect is present, whether the change is undoable, or why the tool is marked non-idempotent despite offering an idempotency_key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tightly written sentence with the action and applicability up front. Nothing is wasted, though it is on the thin side for a 5-parameter mutation tool with nested identity guards.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and full parameter coverage mean return values and guard semantics need not be repeated. However, for a mutation requiring an existing Motion effect, the description omits the key precondition and any effect of disabling anti-aliasing on render quality, leaving real gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already explains node_id, enabled, idempotency_key, and the identity guards, so the 3 baseline applies. The description adds nothing about parameters, and its 'quality' framing is not reconciled with the schema's simple boolean enable/disable toggle, which could mislead an agent expecting graded quality levels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and target: sets anti-alias quality on a clip's Motion effect. The parenthetical 'useful for scaled/rotated clips' adds scope. It does not differentiate from siblings, but no sibling does the same thing, so misselection risk is low.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Useful for scaled/rotated clips' implies when the tool is appropriate, but it is a hint rather than an instruction. There is no statement of when not to use it, no alternative (e.g., apply_effect or set_effect_property), and no note that the clip must already have a Motion effect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_blend_modeSet Blend ModeB

Set a video clip's blend mode through its Opacity effect and read the stored mode back. Premiere stores the mode as an index into its modes in alphabetical order, with Subtract and Divide last (mapped on Premiere 25.2.3 by rendering every index over a known background).

NameRequiredDescriptionDefault
node_idYesNode ID of the video clip
blend_modeYesBlend mode name
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (not read-only, non-destructive, not idempotent), and the description adds real value beyond them: the write happens via the Opacity effect, the stored value is read back for confirmation, and Premiere's alphabetical index mapping (with Subtract/Divide special-cased, validated on 25.2.3) is disclosed. It stops short of saying what happens when the clip lacks an Opacity effect or the host version differs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences with no filler; the core action comes first and the host-quirk parenthetical is defensible. The second sentence is dense but every clause conveys non-obvious information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not explain return values, and the nested guard/idempotency parameters are fully self-documented in the schema. However, for a mutation of a 5-parameter tool with nested expected-target guards, the description omits failure conditions (missing Opacity effect, version mismatch) that would help an agent call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter is documented inline, so the baseline is 3. The description adds only marginal semantic value, clarifying the storage order behind the blend_mode enum (Subtract and Divide last) but saying nothing about node_id or the guard parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Set a video clip's blend mode") and even names the mechanism (through its Opacity effect) plus a read-back. It does not explicitly distinguish itself from near neighbors like set_frame_blend (temporal frame blending) or set_clip_opacity, which an agent could plausibly confuse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus alternatives, no prerequisites (e.g. an Opacity effect must already exist on the clip), and no exclusions. The agent must infer applicability from the verb alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_anchor_pointSet Clip Anchor PointB

Set the Anchor Point property on a video clip's Motion effect.

NameRequiredDescriptionDefault
xYesAnchor point X in pixels
yYesAnchor point Y in pixels
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the bar is lower. The description adds the scoping fact that this targets video clips' Motion effect specifically, but says nothing about permission requirements, whether existing anchor keyframes are overwritten, or the effect of changing the anchor on position/scale.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler and the key qualifier (video clip's Motion effect) front-loaded. It is efficient, though arguably too terse for a 6-parameter mutating tool with guard objects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is self-documenting, so return values and guard semantics need no prose. Still missing for a mutation: units/precision of the anchor, the prerequisite that Motion must be applied, and how this interacts with existing anchor keyframes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the idempotency_key and expected_cep_target guards are documented in far more depth than the description could. The description adds no meaning beyond the schema for x, y, or node_id, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: sets the Anchor Point property, and it names exactly where that property lives (a video clip's Motion effect), which distinguishes it from siblings like set_clip_position, set_clip_scale and set_clip_rotation. It stops short of naming those siblings as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or prerequisite guidance. It never says the clip must already carry a Motion effect, nor how this relates to set_clip_position or the keyframe tools. The agent must infer usage entirely from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_durationSet Clip DurationA

Set one timeline clip's visible duration by moving only its timeline end (TrackItem.end) while keeping its start fixed. Pass exactly one of duration_seconds or end_seconds. Works for extending still images past their import length. Refuses to overlap the next clip on the same track, rejects shortening that would strand effect keyframes unless keyframe_policy is preserve, reads start/end back, and restores the original end if Premiere clamps or ignores the write (for example when video media has no handle left). Linked audio/video partners get the same change by default (include_linked), applied as the same end offset so partners with a J/L cut keep their offset; every clip is checked before any is changed. Use this instead of speed changes, which Premiere does not expose to scripting. Existing host Out padding below one sequence frame may be preserved or reduced, but never used to create additional padding. Non-still sources require readable ffprobe duration evidence and a readable sequence frame grid.

NameRequiredDescriptionDefault
node_idYesNode ID of the timeline clip (track item) to resize
end_secondsNoTarget absolute timeline end (out-point) in seconds. Must be at least one frame after the clip's start. Specify exactly one of duration_seconds or end_seconds.
include_linkedNoAlso apply the edit to the clip's linked audio/video partners, as Premiere does with linked selection (default: true).
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
keyframe_policyNoWhen shortening, how to handle effect keyframes beyond the new visible length: reject (default) leaves the timeline unchanged; preserve keeps them and reports their count.
duration_secondsNoTarget visible duration in seconds, measured from the clip's current timeline start. Specify exactly one of duration_seconds or end_seconds.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: pre-validates every clip before mutating any, rolls back the original end if Premiere clamps the write, refuses overlaps, discloses Out-padding behavior, and describes how linked partners receive the same end offset to preserve J/L cuts. Safety-relevant failure modes are named concretely rather than left implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that front-loads the core action and mechanism before piling on edge cases; nearly every clause carries information, though the tail (ffprobe evidence, frame grid) is compressed enough to read as a run-on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and rich nested validation params (expected_cep_target, expected_project_path) are schema-documented, so the description's job is preconditions and side effects — both covered, including the ffprobe/frame-grid requirements needed for non-still sources.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so 3 is the baseline; the description adds real semantics on top: the exactly-one-of constraint on duration_seconds/end_seconds and the rationale that include_linked applies as an end offset so partners with a J/L cut keep their offset. keyframe_policy and idempotency_key are largely restated from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (set one timeline clip's visible duration) and pins the mechanism (moves TrackItem.end, keeps start fixed), which clearly separates it from trim_clip, set_clip_start_time, move_clip and speed_change.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent away from speed changes ("Use this instead of speed changes, which Premiere does not expose to scripting") and states preconditions (readable ffprobe duration, readable sequence frame grid) plus the one-of duration_seconds/end_seconds rule. It does not explicitly contrast with trim_clip or set_item_in_out, so it falls short of full alternative coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_opacitySet Clip OpacityB

Set the opacity of a video clip (0-100) using English or measured Spanish built-in names, then read it back.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
opacityYesOpacity value (0 = transparent, 100 = fully opaque)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so safety and mutation status are covered. The description adds useful read-back verification context, but it does not explain the idempotency key, expected_cep_target, or expected_project_path guard behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that immediately states the action and range. The phrase about English or measured Spanish built-in names is unclear enough to weaken otherwise efficient structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, annotations, and existence of an output schema, the description is mostly sufficient for a simple opacity mutation. It gives the value range and read-back behavior, though it does not surface sibling routing guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents node_id, opacity, idempotency_key, and the expected identity guards. The description repeats the 0-100 opacity range and adds an ambiguous names clause that does not clarify the numeric opacity parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: set the opacity of a video clip, with the 0-100 range. However, it adds an unclear phrase about English or measured Spanish built-in names and does not distinguish this from sibling tool set_clip_properties.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. The description implies a set-then-read-back workflow but does not help an agent choose between this tool and sibling property setters such as set_clip_properties.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_panSet Clip PanB

Set and read back the pan (left/right balance) on an audio clip, including Channel Volume layouts.

NameRequiredDescriptionDefault
panYesPan value (-100 = full left, 0 = center, 100 = full right)
node_idYesNode ID of the audio clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state that this is a non-read-only, non-destructive, non-idempotent mutation. The description adds useful behavioral context by saying the pan is set and read back, and that Channel Volume layouts are included, but it does not explain guard behavior, idempotency key semantics, or failure modes beyond what the structured fields provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted language. It states the operation and scope immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a rich schema, output schema, and annotations, so the description need not repeat parameter or return details. However, for a mutation with optional identity guards and idempotency behavior, the description is sparse and does not surface the read-back verification or CEP guard context that an agent might need to reason about invocation behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema itself documents the pan, node_id, idempotency_key, expected_cep_target, and expected_project_path parameters in detail. The description does not add parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: setting and reading back pan on an audio clip, with scope extended to Channel Volume layouts. It is clear what the tool does, but it does not explicitly differentiate itself from related siblings such as set_clip_volume or adjust_audio_levels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that the tool is used when pan needs to be set or checked, but it provides no explicit when-to-use guidance, no prerequisites, and no alternatives or exclusions. It relies on the tool name to convey context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_positionSet Clip PositionB

Set the Position property on a video clip's Motion effect using English or measured Spanish built-in names, then read it back. Values are in pixels.

NameRequiredDescriptionDefault
xYesX position in sequence pixels (converted to Premiere's normalized Position when the host stores it that way)
yYesY position in sequence pixels (converted to Premiere's normalized Position when the host stores it that way)
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=false, destructiveHint=false, and openWorldHint=false. The description adds useful behavior by saying it reads back after setting and that values are in pixels, but it omits preconditions such as whether the Motion effect must already exist and how the idempotency/guard parameters affect execution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action, and has no filler. The pixel-unit sentence is short and directly relevant, even though the built-in-name clause is somewhat opaque.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with six parameters including nested guard objects, the description covers the core action but leaves important operational context unstated, such as prerequisites and alternative tools. The rich schema, output schema, and annotations carry much of the remaining burden, but the description itself is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the x/y schema descriptions already state that values are sequence pixels, so the description's unit sentence is mostly redundant. It does not add meaning for node_id, idempotency_key, or the expected_cep_target/expected_project_path guard objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and target: setting the Position property on a video clip's Motion effect. It is clear what the tool changes, but it does not explicitly distinguish itself from sibling transform/property tools such as set_effect_property or set_clip_anchor_point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. The verb implies a direct use case, but the agent is left to infer routing against set_effect_property, set_clip_scale, move_clip, and similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_propertiesSet Clip PropertiesA

Set supported clip properties (opacity, scale, position, rotation) and read each requested value back. Clip speed is unsupported and fails before mutation; use set_clip_duration to change a clip's timeline length.

NameRequiredDescriptionDefault
scaleNoScale percentage (0-10000; 100 = original size)
speedNoUnsupported by Premiere's documented scripting APIs. Supplying this returns an actionable error without mutating the clip; use set_clip_duration to change timeline length.
node_idYesNode ID of the clip
opacityNoOpacity value (0-100)
rotationNoRotation in degrees
position_xNoHorizontal position in sequence pixels
position_yNoVertical position in sequence pixels
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only mutation that is not destructive and not idempotent. The description adds real behavioral context beyond that: an unsupported property fails before any mutation occurs (no partial edit), and each requested value is read back for verification. It does not say whether values are absolute versus relative or what permissions are required, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, zero filler. The supported-capability statement comes first and the unsupported-path routing follows immediately, so the agent gets the pass/fail boundary up front.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations carry the safety profile. The description covers the notable failure mode and the read-back. What it omits is sibling selection among the singular and batch property setters, which matters given how crowded this namespace is.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter documenting its units and ranges, so the schema does the heavy lifting. The description's property list and speed caveat largely restate what the schema's 'speed' description already says, so it adds little new parameter semantics. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (set) plus resource (clip properties) with the supported fields enumerated: opacity, scale, position, rotation, and the read-back behavior. It distinguishes itself from set_clip_duration by name, but leaves the relationship to the many singular setters (set_clip_opacity, set_clip_scale, set_clip_rotation, set_clip_position) and to set_clip_properties_batch unstated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one explicit routing rule — speed is unsupported here, use set_clip_duration for timeline length — which is genuinely useful. But there is no guidance on choosing this over the per-property siblings or the batch variant, so the most consequential sibling choice 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.

set_clip_properties_batchSet Clip Properties BatchA

Apply Motion/Opacity values to up to 16 clips after preflighting every target property. The handler reads each requested value back and never reports a partial batch as verified.

NameRequiredDescriptionDefault
itemsYesEach item changes one or more supported opacity, Motion scale, position, or rotation values.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the annotations by disclosing that every target property is preflighted before mutation and that each value is read back afterward, plus the notable caveat that a partial batch is never reported as verified. It does not contradict the annotations (idempotentHint=false is consistent with an optional idempotency key), though it omits mention of the project/CEP identity guards that fail the whole call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and scope, with no filler. Given the tool's nested guards and idempotency semantics the text is tight to the point of being slightly under-explanatory, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the schema fully covers the guard and idempotency parameters. What the description supplies — preflight plus readback verification — is the key behavioral fact an agent needs to decide whether to run a batch; only the all-or-nothing failure behavior of the guards goes unmentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents node_id, opacity, scale, position, rotation, and the unsupported speed field, as well as idempotency_key and the expected_* guards. The description only restates the 16-item cap and the op/opacity scope, adding little beyond the structured data; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Apply Motion/Opacity values') plus a hard scope ('up to 16 clips'), which cleanly separates it from the single-clip sibling set_clip_properties. It does not explicitly name that sibling, so differentiation is inferred from the batch framing rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (many clips, motion/opacity fields only) but never states when not to use it or points to the single-clip alternative. The mention of preflighting hints at a safety-oriented workflow but is not framed as usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_rotationSet Clip RotationA

Set the Rotation property on a video clip's Motion effect using English or measured Spanish built-in names, then read it back.

NameRequiredDescriptionDefault
degreesYesRotation in degrees (0-360, can exceed for multiple rotations)
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already specify that this is not read-only, not destructive, and not inherently idempotent. The description adds that it sets the Motion effect property and then reads it back, which is useful behavioral context, but it does not mention failure modes such as a missing Motion effect, overwrite semantics, or the idempotency-key behavior documented in 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no obvious filler. The only weakness is the opaque phrase 'measured Spanish built-in names,' which could be stated more plainly or omitted if it does not map to a parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is very rich, so return values and most guard fields are documented elsewhere. However, for a mutation tool with nested CEP target guards and idempotency behavior, the description does not mention preconditions, CEP-only constraints, or replay semantics, leaving the agent to rely entirely on schema text.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters thoroughly. The description adds little parameter-level guidance and introduces the phrase 'English or measured Spanish built-in names' even though the corresponding rotation parameter is numeric degrees, which is somewhat confusing rather than clarifying.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: set the Rotation property on a video clip's Motion effect, then read it back. This clearly distinguishes the tool from sibling operations such as set_clip_scale, set_clip_position, or set_effect_property by naming the exact property being changed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by naming the Motion effect rotation property, but there is no explicit guidance on when to choose this tool over set_effect_property, set_clip_properties, or other clip-property setters. No exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_scaleSet Clip ScaleA

Scale a video clip evenly through its Motion effect using English or measured Spanish built-in names, and read the result back. With Uniform Scale off, both Scale (height) and Scale Width are set, so the picture is not stretched; use set_scale_width_height for different values.

NameRequiredDescriptionDefault
scaleYesScale value (100 = original size, 200 = 2x, 50 = half)
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety profile (not read-only, not destructive, not idempotent); the description adds the substantive behavior that both Scale (height) and Scale Width are written so the picture is not stretched, and that the result is read back. It stops short of failure modes such as a clip lacking a Motion effect, so not a full 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, with the core action and the sibling distinction front-loaded and the caveat second. The phrase 'English or measured Spanish built-in names' is compressed but earns its place as a naming hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the schema fully documents the identity guards, so the description need not explain returns. Minor gap: it does not say what happens when the target clip has no Motion effect or how partial failure is reported, which matters for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter, including the nested expected_cep_target, is documented in the schema. The description adds only contextual framing ('evenly', no stretching) and says nothing about node_id or the guard parameters, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Scale a video clip') and the mechanism ('through its Motion effect'), and explicitly separates itself from the sibling set_scale_width_height. An agent can identify the tool's job without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative tool (set_scale_width_height) and the exact condition that selects it ('for different values'), plus the Uniform Scale off precondition implied for this tool. Nothing about tool 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.

set_clip_selectionSet Clip SelectionB

Select or deselect a clip in the active sequence and read its selection state back.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
selectedYesTrue to select, false to deselect
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, and the description is consistent with a non-destructive selection-state mutation. What it omits is the substantial guard behavior: the expected_cep_target and expected_project_path preconditions that can make the call refuse, and that the tool targets whichever sequence is active. That omission is tolerable only because the schema documents those parameters verbosely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, no restatement of the title, and the mutation action stated first. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the read-back result need not be explained, and the five-parameter schema is fully described. However, for a tool with nested identity guards, an idempotency contract, and project-path preconditions, the description says nothing about the failure modes an agent should anticipate before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter, including idempotency_key and the nested CEP identity guards, is thoroughly documented in the schema itself. The description adds only the notion of 'active sequence', which mildly informs node_id scope, but nothing about expected values or key reuse. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('select or deselect') plus resource ('a clip in the active sequence') and the read-back behavior, so the agent knows exactly what happens. It does not differentiate from siblings such as select_item, select_all_clips, deselect_all_clips, or invert_selection, which is the only thing keeping it below a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance and never mentions the several overlapping selection tools in the sibling list. There is no stated condition for picking this single-clip selector over select_clips_by_name, select_all_clips, or select_item, leaving the routing decision entirely to inference from names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_speed_qeSet Clip Speed QeA

Unavailable: Premiere's documented ExtendScript and UXP APIs have no setter for a timeline clip's speed (only getters), and the undocumented QE setSpeed is deliberately not used. Always fails before mutation. To change how long a clip runs on the timeline, use set_clip_duration.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
reverseNoReverse playback direction (default: false)
speed_percentYesSpeed as percentage (100 = normal, 200 = 2x, 50 = half speed)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the single most important behavior an agent needs: the call always fails, and it fails before any mutation. That failure-mode context is not derivable from the annotations (which only say readOnlyHint=false, destructiveHint=false) and prevents wasted attempts and false expectations of a state change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the unavailability and its cause, then the alternative. No filler and no repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deliberately unimplemented stub, this is complete: why it cannot work, that it never mutates, and what to call instead. An output schema exists, so return-shape detail is not needed here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id, speed_percent, reverse, idempotency_key and the identity guards are already documented in the schema. The description adds no parameter-level meaning beyond that, which is the expected baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States plainly what the tool is: a non-functional operation with no backing API setter for timeline clip speed, and that it always fails before mutation. It distinguishes itself from the read-only sibling get_clip_speed and from set_clip_duration by explaining that a functional speed setter does not exist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly redirects the agent to set_clip_duration for changing timeline duration, which is the closest documented alternative. It stops short of naming the other speed-adjacent siblings (speed_change, get_clip_speed), so the routing 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.

set_clip_start_timeSet Clip Start TimeB

Alias of set_start_time: set and verify the source project item start timecode offset.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
start_secondsYesNew start time in seconds
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnly=false, destructive=false, idempotent=false). The description adds one real piece of context — that the operation verifies the result after setting — but says nothing about the pre-mutation guards (expected_cep_target, expected_project_path) or retry/idempotency behavior, all of which live only in 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the alias relationship stated first and zero filler. It is arguably too terse rather than bloated, which is not a conciseness failure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and a fully described schema, the description needn't explain return values. However, for a mutation carrying nested identity guards and an idempotency contract, it gives no orientation to those mechanisms, leaving the agent to discover them entirely from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both required parameters and the three optional guards are fully documented in the schema; baseline 3 applies. The description adds no syntax, units, or constraint detail beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('set ... source project item start timecode offset') and explicitly frames itself as an alias of set_start_time, which is enough to distinguish it from the sibling of the same name. The added 'verify' verb is unexplained but doesn't obscure the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Naming set_start_time as the canonical tool implies substitutability but gives no rule for when an agent should pick the alias over the original, nor any mention of set_clip_position or set_item_in_out, which are plausible near-alternatives. Usage 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.

set_clips_volumeSet Clips VolumeA

Set the volume (in dB) on every audio clip of a track, or on a list of clip indices. One round trip instead of one call per clip - essential for sequences with dozens of clips.

NameRequiredDescriptionDefault
volume_dbYesVolume in dB applied to every selected clip (0 = unity, max +15)
track_indexYesAudio track index (0-based)
clip_indicesNoOptional clip indices on that track. Omit to apply to all clips.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write/safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the bar is lower. The description usefully discloses the batching behavior and round-trip savings, but says nothing about what happens to existing volume values, whether a partial failure leaves some clips changed, or any permission/connection requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, with the operation and its scope front-loaded and the efficiency rationale as supporting justification rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the schema coverage is full, so return values need no explanation. However, for a batch mutation the description should at least signal partial-failure semantics and the role of the idempotency/guard parameters, which it currently omits entirely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents volume_db (0 = unity, max +15), track_index, clip_indices, idempotency_key and the nested expected_cep_target guards. The description only restates the dB unit and the omit-to-apply-to-all default, adding no meaning beyond the schema and leaving the complex guard parameters entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (set volume in dB) plus the exact scope: every audio clip of a track, or a named list of clip indices. The phrase 'one round trip instead of one call per clip' implicitly but unmistakably separates it from the singular set_clip_volume sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use condition ('essential for sequences with dozens of clips') and defines the default scope when clip_indices is omitted. It never explicitly says when to fall back to set_clip_volume for a single clip, so the routing is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clip_volumeSet Clip VolumeA

Set an audio clip's Volume > Level in dB. Does not read or change Essential Sound Amplify automation.

NameRequiredDescriptionDefault
node_idYesNode ID of the audio clip
volume_dbYesVolume in dB (0 = unity, negative = quieter, positive = louder)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine domain context by distinguishing the clip Volume > Level property from Essential Sound Amplify automation, but it says nothing about whether existing volume keyframes are overwritten or that idempotentHint is false despite the set-to-a-value semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with zero filler: the operation first, then the scoping caveat. Nothing repeats the name or the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and rich annotations, the definition is close to sufficient, but for a mutation with non-trivial guard parameters it omits whether the clip must be audio and how the write interacts with existing volume keyframes. It also never points at set_clips_volume for multi-clip edits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including units and sign convention for volume_db and the full semantics of idempotency_key and expected_cep_target, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (set an audio clip's Volume > Level in dB), which is concrete enough for an agent to know exactly which property is being mutated. It does not distinguish itself from the obvious sibling set_clips_volume or from adjust_audio_levels, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The singular 'an audio clip' implies the single-clip case versus the batch sibling, but no alternative is named and no when-not condition is stated. The one exclusion provided ('Does not read or change Essential Sound Amplify automation') is a useful scope limit but not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_color_labelSet Color LabelB

Set the color label on a project item or clip and read it back

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
color_indexYesLabel color index (0=Violet, 1=Iris, 2=Caribbean, 3=Lavender, 4=Cerulean, 5=Forest, 6=Rose, 7=Mango, 8=Purple, 9=Blue, 10=Teal, 11=Magenta, 12=Tan, 13=Green, 14=Brown, 15=Yellow)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, non-open-world operation, and the description adds that the label is read back after setting. It does not add details about permissions, reversibility, or how existing labels are affected beyond what annotations and schema provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. It immediately states the core action and includes the useful read-back behavior without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple color-label mutation, the description covers the primary effect and read-back, and the schema plus annotations supply the detailed parameter, safety, and idempotency semantics. It does not mention the optional precondition guards, but those are thoroughly documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains item_id, color_index, idempotency_key, and the guard parameters in detail. The description only implies the target item or clip and does not add parameter-level semantics beyond the schema, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: setting a color label on a project item or clip, plus a read-back behavior. It is clear enough to distinguish from get_color_label, but it does not explicitly name sibling alternatives or clarify when to use this versus related color tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the operation but gives no explicit when-to-use, when-not-to-use, prerequisites, or alternatives. Usage is only implied by the verb 'Set' and the target scope, so the agent must infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_color_valueSet Color ValueB

Set a color value on an effect property (e.g., tint color, fill color)

NameRequiredDescriptionDefault
redYesRed (0-255)
blueYesBlue (0-255)
alphaYesAlpha (0-255)
greenYesGreen (0-255)
node_idYesNode ID of the clip
property_nameYesName of the color property; duplicate names require property_index from get_effect_properties.
component_nameYesName of the component/effect
property_indexNoOptional exact property index from get_effect_properties; required if the name is repeated.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare mutation (readOnlyHint=false), non-destructive behavior, non-idempotence, and a closed-world scope. The description adds almost no behavioral context beyond restating the mutation, such as what happens if the property is wrong, whether an existing color is overwritten, or undo/persistence behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, and the examples are compact and useful. It is appropriately concise and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full schema description coverage, and annotations covering the safety profile, the description is minimally adequate. It still omits sibling differentiation and the practical dependency of inspecting effect properties before setting a duplicate-named color property, leaving the agent to infer that from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 11 parameters, value ranges, property_index disambiguation, idempotency key behavior, and CEP guards are already documented. The description adds only illustrative property-name examples, which is marginal value beyond the schema; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: setting a color value on an effect property, with concrete examples (tint color, fill color). However, it does not differentiate from the sibling set_effect_property (generic effect property setter) or from color-related siblings like color_correct and set_color_label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no explicit when-to-use conditions, prerequisites, or alternatives. The phrase 'on an effect property' only weakly implies that the effect/property must already exist, and there is no guidance to inspect properties first or to prefer this over set_effect_property.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_effect_propertySet Effect PropertyA

Set one effect property. Duplicate names require property_index from get_effect_properties. Colour values use [alpha, red, green, blue] and the lossless colour API; keyframed writes are refused. Readback reports verified, failed or committed_unverified; unreadable values are never reported as applied.

NameRequiredDescriptionDefault
valueYesValue to set. Use a number for scalar properties, an array of numbers for vector properties such as Motion > Position or Anchor Point ([x, y]), a boolean for checkbox properties, the exact JSON string reported for a MOGRT text or graphic parameter, or that same JSON object if the client parsed it.
node_idYesNode ID of the clip
effect_nameYesDisplay name of the effect (e.g., 'Motion', 'Opacity')
property_nameYesDisplay name of the property; duplicate names require property_index.
property_indexNoOptional property index from get_effect_properties; required when property_name is duplicated.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond annotations (which only declare non-read-only, non-destructive, non-idempotent, closed-world): color channel ordering, refusal of keyframed writes, and a readback status model (verified / failed / committed_unverified) that clarifies partial-success semantics. The 'unreadable values are never reported as applied' line is exactly the kind of failure-mode disclosure an agent needs before a mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action, then the disambiguation rule, then the value format and readback contract. Dense but no filler; 'lossless colour API' is mildly jargon-heavy for the value it conveys.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation with nested guard objects and an output schema, the description covers the value encoding, duplicate resolution, keyframe restriction and result statuses. The remaining complexity (idempotency_key, expected_cep_target guards) is fully documented in the schema, so little is missing here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real semantics the schema lacks: the [alpha, red, green, blue] ordering for color arrays and the duplicate-name/property_index rule tied to get_effect_properties. It does not clarify value typing per property class, but the schema's value description already handles that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Set one effect property') with an explicit singular scope that separates it from bulk/clip-level tools like set_clip_properties. It does not explicitly name the sibling that applies keyframes (add_keyframe), so full differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete prerequisite path ('Duplicate names require property_index from get_effect_properties') and an exclusion ('keyframed writes are refused'). It stops short of naming the correct alternative tool for keyframed values, leaving the agent to infer that route.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_footage_interpretationSet Footage InterpretationB

Set footage interpretation settings for a project item and read them back, including fields that were not meant to change

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
field_typeNoField order of interlaced footage: 0 = progressive, 1 = upper field first, 2 = lower field first
frame_rateNoOverride frame rate
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
pixel_aspect_ratioNoPixel aspect ratio (1.0 = square pixels)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-destructive mutation, so the bar is lower; the description usefully discloses that the call reads settings back and returns fields that were untouched. However, it does not reconcile the idempotency_key parameter and replay semantics with idempotentHint=false, nor does it mention the expected_cep_target/expected_project_path preconditions that can cause a refusal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence covering both the mutation and the read-back, with no boilerplate. The clause 'including fields that were not meant to change' is awkwardly worded and slightly ambiguous, but it earns its place by explaining the return shape.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be described. For a seven-parameter mutation with nested identity guards, though, the description says nothing about the guards or the failure modes they introduce, leaving the agent to discover refusals only from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and all seven parameters, including the nested guard object, are documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (footage interpretation settings for a project item) and adds the read-back behavior, which distinguishes it from the sibling get_footage_interpretation. It does not distinguish against set_override_frame_rate or set_override_pixel_aspect_ratio, which touch adjacent settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus the read-only get_footage_interpretation or the more targeted set_override_frame_rate / set_override_pixel_aspect_ratio siblings. The agent must infer selection from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_frame_blendSet Frame BlendA

Request frame blending on a clip through QE DOM. Premiere exposes no frame-blend readback, so the result is committed_unverified and must be checked in Effect Controls.

NameRequiredDescriptionDefault
enabledYesTrue to enable frame blending, false to disable
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses a genuinely important behavioral trait not covered by annotations: the mutation is one-way via QE DOM with no readback, so the outcome is 'committed_unverified' and requires manual confirmation in Effect Controls. This is exactly the kind of caveat the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler; the limitation and required follow-up action come immediately after the purpose, so the most decision-relevant fact is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary; the description correctly covers what matters (mechanism, no verification path, manual check). The remaining gap is context about prerequisites and how this differs from other time/clip-property tools, which matters given the large sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the enabled boolean and the identity/idempotency guard objects, so the schema already carries parameter meaning. The description adds no syntax or semantics beyond what is structured, which is the baseline case for a fully documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Request frame blending on a clip', with the mechanism ('through QE DOM') named. An agent can immediately tell this toggles frame blending on an existing clip. It does not, however, distinguish itself from adjacent siblings such as set_time_interpolation or set_blend_mode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use or when-not-to-use guidance and names no alternative. With siblings like set_time_interpolation, set_clip_properties, and speed_change in the same domain, the agent gets no routing signal about which tool applies frame blending versus optical-flow/time-interpolation settings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_graphics_white_luminanceSet Graphics White LuminanceC

Set the graphics white luminance value (HDR setting) for the project

NameRequiredDescriptionDefault
luminanceYesWhite luminance value in nits
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the mutation and safety profile is known. The description adds only the parenthetical '(HDR setting)' beyond the title; it says nothing about project-open requirements, what happens on a CEP-only guard, or that the idempotency key governs replay.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficient, though arguably too terse for a guarded mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and all four parameters are fully documented in the schema, so the description need not explain returns or fields. However, it omits the read counterpart, the CEP/UXP backend constraint, and the fact that this edits project-wide HDR configuration rather than a clip property, which matters given the very large sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the 'nits' unit for luminance and detailed semantics for idempotency_key and expected_cep_target. The description adds no parameter-level meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Set the graphics white luminance value') and scopes it as an HDR project setting. It does not distinguish itself from the sibling get_graphics_white_luminance, but the write/read split is at least implied by the verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus get_graphics_white_luminance or any sequence-level HDR setting tool, and no prerequisites (project open, saved, CEP backend required) are stated. An agent must infer everything from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_item_in_outSet Item In OutA

Set in and/or out points on a project item in the project panel (marks source range for editing). Premiere floors video marks to the media's own frame grid, so a mark is verified when it lands on the frame the request floors to (an exact frame boundary keeps its own frame); the result reports requested and applied seconds.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
in_secondsNoIn point in seconds
media_typeNoMedia type: 1=video, 2=audio, 4=all (default: 4)
out_secondsNoOut point in seconds
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing a real behavioral quirk: Premiere floors video marks to the media's own frame grid, marks are verified against the floored frame, and the result reports both requested and applied seconds. It does not mention undo semantics, whether omitting a value clears an existing mark, or how audio marks behave, but the observed-mutation caveat is the most valuable thing it could have said.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the purpose before the frame-flooring caveat. The second sentence is dense with parenthetical asides but every clause carries behavioral information that would otherwise cause a wrong call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be enumerated, and the description still flags that requested vs. applied seconds come back. Combined with 100% schema coverage and a rich guard-parameter schema, the remaining gap is mainly the sibling-routing problem, not missing invocation detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description earns above baseline by explaining what 'seconds' actually means in effect: requests are floored to the media frame grid and the applied value may differ from the requested one. It does not discuss media_type (video/audio/all) interplay or the guard parameters, which the schema already documents thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: set in/out points on a project item in the project panel, and clarifies this is the source range used for editing. It implicitly separates itself from sequence-level and timeline operations by naming the project panel, but it never explicitly names the near-identical siblings (set_source_in_out, set_sequence_in_out_points, clear_item_in_out), so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '(marks source range for editing)' hints at context but gives no explicit when-to-use rule, no exclusions, and no comparison to the several sibling tools that also set in/out points. An agent choosing between this, set_source_in_out, and set_sequence_in_out_points gets no routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_keyframe_interpolationSet Keyframe InterpolationA

Set the interpolation type of an existing keyframe (Linear, Hold, or Bezier). Premiere exposes no interpolation readback, so a write is reported as committed_unverified. Stored curves do not establish rendering; verify with a short video export, or with PNG stills composited over black (they carry straight alpha).

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
effect_nameYesDisplay name of the effect
time_secondsYesSeconds from the clip's start on the timeline (0 is the clip's first frame) of the keyframe
interpolationYesInterpolation type
property_nameYesDisplay name of the property
property_indexNoOptional property index from get_effect_properties; required when property_name is duplicated.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false) by disclosing that Premiere offers no interpolation readback, that the write is reported as committed_unverified, and that stored curves do not prove rendering. It then supplies a concrete verification strategy (short video export, or PNG stills over black carrying straight alpha), which is exactly the kind of hidden behavior an agent cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the operation, then the unverifiability caveat and verification advice; nothing is redundant. The PNG-stills detail is dense but actionable rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description need not explain return values, and it covers the two things that matter most for a mutation that cannot be read back: the committed_unverified outcome semantics and how to verify rendering independently. Combined with 100% schema coverage and safety annotations, 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 9 parameters are already documented; baseline is 3. The description echoes the interpolation enum values already present in the schema and adds no interpretation of node_id, time_seconds, property_index, idempotency_key, or the expected_* guards.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (set interpolation of an existing keyframe) and enumerates the three accepted modes, which an agent can map directly to the schema enum. The phrase 'existing keyframe' implicitly separates it from the add_keyframe and get_keyframes siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The precondition that a keyframe must already exist is stated, which implies add_keyframe/get_keyframes must precede this call, and a verification path is given. However, no sibling is named explicitly and there is no when-not guidance, so alternative 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.

set_metadataSet MetadataA

Update project metadata on a project item. Supply complete metadata_xml plus updated_fields, or field_name and value to read-modify-write one XMP/project property through AdobeXMPScript with field readback. The project packet (default) stays in the project; packet 'xmp' is written by Premiere into the source media file on disk and requires the filesystem capability.

NameRequiredDescriptionDefault
valueNoReplacement value for field_name. Maximum 4096 characters.
packetNoPacket for field_name writes. Default project (Premiere-private metadata).
item_idYesNode ID or name of the project item
field_nameNoNamed field to update (for example Column.Intrinsic.LogNote). Used with value; cannot be combined with metadata_xml.
metadata_xmlNoComplete Project Metadata XML previously read from get_metadata, with the intended field values applied.
expected_valueNoOptional compare-and-set guard for field_name writes.
updated_fieldsNoExact Project Metadata field paths changed in metadata_xml (for example, Column.Intrinsic.Description).
field_namespaceNoXMP namespace URI or alias (premiere, dc, xmp, exif). Default premiere for project packet; required for xmp.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say write, non-destructive, non-idempotent; the description adds genuinely new behavior: the default project packet stays inside the project, whereas packet 'xmp' is written into the source media file on disk and requires the filesystem capability. That disk-side-effect disclosure matters for a mutation tool. It does not discuss failure modes or permissions beyond the capability note.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action, then the two modes, then the packet consequence. No filler and no restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter mutation tool with nested guards and a full output schema, the description covers the decision-relevant surface: what is written, where it is written, and which capability the xmp path requires. Return values and guard details are handled by the output schema and per-parameter descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above baseline by explaining how parameters pair up (metadata_xml with updated_fields versus field_name with value) and what the packet choice changes. The remaining specifics (expected_value, idempotency_key, expected_cep_target) are documented only in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Update project metadata on a project item") and immediately breaks that into two concrete write modes. It is clear enough to act on, but it never names the close siblings (get_metadata, set_xmp_metadata, set_project_panel_metadata, add_custom_metadata_field), so an agent cannot rule out overlap from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear selection guidance between the two supported styles: whole-document write via metadata_xml plus updated_fields, or single-field read-modify-write via field_name and value. It also flags that the xmp packet needs the filesystem capability. It stops short of when-not-to-use or pointing at alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_offlineSet OfflineA

Set a project item offline, or ask Premiere to refresh it back online when offline is false.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
offlineNotrue to take media offline (default); false to refresh an existing offline item
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=false, destructiveHint=false, and idempotentHint=false, covering the safety profile. The description adds the conditional refresh behavior, but does not explain permissions, reversibility, side effects, or rate limits beyond what the annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence that front-loads the primary action and then the inverse condition. No wasted words or structural issues.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, nested objects, an output schema, and complex optional guards (expected_cep_target, expected_project_path), the description is quite minimal. The schema covers those details, but the description itself does not hint at the guard parameters' purpose or the idempotency_key's role, leaving a gap for an agent consuming only the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters including the optional guards and idempotency_key. The description only clarifies the 'offline' parameter's semantics implicitly, adding marginal meaning beyond the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Set a project item offline') and clarifies the inverse operation when 'offline' is false. It does not explicitly differentiate from related siblings like refresh_media or check_offline_media, but the core 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the 'offline is false' condition, which tells the agent when to use the refresh behavior. However, it offers no explicit when-not-to-use guidance and does not name alternatives such as refresh_media or check_offline_media, leaving the agent to infer boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_override_frame_rateSet Override Frame RateB

Override the frame rate of a project item (useful for image sequences or misinterpreted media) and read it back

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
frame_rateYesFrame rate to set (e.g., 23.976, 24, 29.97, 30, 60)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutating nature is covered structurally. The description does add one useful behavioral fact beyond that – the new rate is read back after being applied, giving a verification signal – but says nothing about persistence, permissions, or what happens to existing interpretation metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the action first and the motivating scenario in a parenthetical; no filler. Slightly dense in that it bundles two behaviors (set and read back) into one clause, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the rich nested guard parameters are documented in the schema. However, for a mutating tool carrying an idempotency contract and CEP identity guards, the description could have noted the read-back's role in the idempotent retry story; as written it is adequate but thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so item_id, frame_rate, idempotency_key, and the two expectation guards are fully documented in the schema. The description adds no syntax, format, or parameter guidance beyond what the schema already provides, which is the correct baseline-3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (override) and resource (frame rate of a project item), and the parenthetical clarifies the intended scenario. It implicitly distinguishes itself from set_sequence_frame_rate by targeting a project item rather than a sequence, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'useful for image sequences or misinterpreted media' gives a concrete use case, so usage is implied rather than spelled out. There is no statement of when not to use it or an explicit pointer to set_sequence_frame_rate for sequence-level overrides.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_override_pixel_aspect_ratioSet Override Pixel Aspect RatioA

Override the pixel aspect ratio of a project item and read it back

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
numeratorYesPAR numerator (e.g., 1 for square pixels)
denominatorYesPAR denominator (e.g., 1 for square pixels)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a non-read-only, non-destructive operation. The description adds that the value is read back after being set, but it does not describe permission requirements, reversibility, or interaction with the extensive guard parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It communicates the mutation and the read-back behavior efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and annotations cover return values and safety hints, and the input schema is richly documented. However, for a six-parameter mutation with complex guard objects and sibling tools, the one-sentence description leaves important usage and behavioral context unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains item_id, numerator, denominator, idempotency_key, and the guard objects. The description adds only the general concept of a pixel aspect ratio override, without meaningful semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: overriding the pixel aspect ratio of a project item. It distinguishes the operation from sequence-level pixel aspect ratio tools by explicitly naming the project-item scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The project-item scope implies when this tool applies, but the description does not explicitly contrast it with set_sequence_pixel_aspect_ratio, set_footage_interpretation, or other item metadata tools. No when-not or prerequisite guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_playhead_positionSet Playhead PositionB

Set the playhead (CTI) position, clamp it to the active sequence's end, and read the stored position back.

NameRequiredDescriptionDefault
time_secondsYesTime position in seconds to move the playhead to (0 to the sequence end)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, non-idempotent mutation. The description usefully adds that the position is clamped to the sequence end and that the stored position is read back, but it does not discuss playback state, permissions, or the guard/idempotency behavior already documented in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single front-loaded sentence with no wasted words. The core action, clamping behavior, and readback are all stated efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values, and the input schema richly documents the guard and idempotency parameters. Still, for a mutation tool with several protective parameters and nearby navigation siblings, the description is minimal and does not explain operational context or alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents time_seconds, idempotency_key, and the expected_* guards. The description only implies the time parameter through 'position' and the clamp; it adds essentially no semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Set the playhead (CTI) position') and adds the clamping/readback behavior. It does not, however, distinguish this tool from nearby siblings like navigate_playhead or move_playhead_to_edit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The agent can infer it sets a specific numeric position, but the description gives no conditions, exclusions, or sibling routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_poster_frameSet Poster FrameA

Unavailable: Premiere's scripting API cannot set a project item's poster frame. Fails without changing the item; set it in the Project panel (Shift+P).

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
time_secondsYesTime in seconds for the poster frame
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses the key behavioral trait beyond annotations: the call fails and leaves the item unchanged, i.e. it is a guaranteed no-op. This is the most valuable thing an agent can know here. It does not say how the failure surfaces (error code vs. result), but an output schema exists to cover the return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero waste: the limitation is front-loaded and the workaround follows immediately. Nothing is repeated from the schema or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deliberately stubbed, non-functional tool the description covers what an agent needs: it fails, nothing changes, use the manual path. With an output schema present and full parameter coverage there is little left unexplained, though mentioning the failure mode explicitly would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so item_id, time_seconds, idempotency_key and the expected_* guards are already fully documented in structured fields. The description adds no parameter-level meaning, which is acceptable because the tool cannot apply any of them anyway; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (setting a project item's poster frame) and immediately discloses that it cannot be done, so the agent knows exactly what the tool nominally targets and that it is non-functional. It is not quite a 5 because the sentence leads with 'Unavailable' rather than the operation, but the intent is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the concrete alternative: do it manually in the Project panel (Shift+P). That effectively tells the agent not to call this tool and what to instruct the user to do instead. It does not state an explicit exclusion ('never call this') or any conditions under which a call would be appropriate, which keeps it short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_project_item_audio_channel_mappingSet Project Item Audio Channel MappingB

Request one output-to-source audio channel mapping using the documented API. Per-channel mapping has no documented getter, so accepted writes remain committed_unverified.

NameRequiredDescriptionDefault
item_idYesProject item node ID or exact name
channel_indexYesZero-based output channel index to configure
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
source_channel_indexYesZero-based source channel index to map
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare a non-read, non-destructive, non-idempotent mutation. The description adds one genuinely useful piece of context beyond them: there is no documented getter for per-channel mapping, so accepted writes stay committed_unverified. It does not say whether an existing mapping is replaced or added, whether the change takes effect immediately, or what permission/state the item must be in.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, with the verification caveat front-loaded in the second. 'using the documented API' is filler that could be cut, but nothing else is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, for a mutation with nested guard objects and 6 parameters, the description omits preconditions and side effects an agent would want before committing an unverifiable write.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so item_id, channel_index, source_channel_index, idempotency_key and the two CEP guard objects are all documented in the schema. The description adds no meaning beyond that (e.g., whether channel_index must be within the item's existing channel count). Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: requesting one output-to-source audio channel mapping for a project item. It is clear what is being modified and that it is per-channel rather than bulk. The only dilution is the vague phrase 'using the documented API', and it never distinguishes itself from the many other set_* tools on the timeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no alternatives named (e.g., which tool to use to inspect current routing first). The word 'one' implies the tool must be called repeatedly for multi-channel setups, but that is left implicit rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_project_panel_metadataSet Project Panel MetadataA

Set the project panel metadata/column configuration from XML and verify that Premiere reads back the exact XML

NameRequiredDescriptionDefault
metadata_xmlYesXML string containing the project panel metadata configuration
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the safety profile is known. The description adds genuinely useful behavior: it verifies that Premiere reads back the exact XML, implying a post-write check. It does not say what happens if verification fails, whether the change is rolled back, or what XML form is expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence that front-loads the mutation action and appends the verification trait; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and the rich schema covers the guard parameters. However, for a mutation with precondition guards, the description omits failure semantics (verification mismatch, when the project must be open) and does not route the agent between this and the read/other metadata tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including the heavily documented idempotency_key, expected_cep_target and expected_project_path guards) are already explained in the schema. The description only echoes 'from XML' and adds no format or syntax guidance beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Set the project panel metadata/column configuration') and notes the XML source plus a read-back verification step. This clearly distinguishes it from the sibling read-only get_project_panel_metadata, though the sibling is not named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent can infer it should use this when it wants to write column/metadata configuration. There is no explicit when-to-use vs. when-not, no mention of the read counterpart get_project_panel_metadata or of get_metadata/set_metadata siblings that might overlap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_project_scratch_diskSet Project Scratch DiskA

Set the project's scratch disks for captured video, captured audio, video previews and audio previews in one call. Each path must be an existing folder or "SameAsProject"; any rejected path fails the call.

NameRequiredDescriptionDefault
audio_previewsNoPath for audio previews
captured_audioNoPath for captured audio
captured_videoNoPath for captured video
video_previewsNoPath for video previews
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
save_and_verifyNoSave the project afterwards and confirm the saved scratch-disk settings (default: false). Premiere has no scratch-disk getter, so without this the result is unverified.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=false and destructive=false, so the safety profile is covered; the description adds genuinely new behavior: paths must be an existing folder or the 'SameAsProject' sentinel, and any rejected path fails the whole call (all-or-nothing semantics). It does not mention that results are unverified unless save_and_verify is used, which the schema carries instead.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler: the first states scope and the batch capability, the second states the validation/failure contract. Both are front-loaded and each earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with eight parameters, no required fields and several guard/idempotency options, the description covers the core write but omits that a save is needed to persist (only implied by the save_and_verify parameter) and does not point at get_project_scratch_disks for reading current values. An output schema exists, so return-value explanation is not needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description rises above it by documenting validation semantics ('existing folder or SameAsProject') and the atomic failure behavior across the four path parameters, which the schema's one-line property descriptions do not state. The four control parameters (idempotency_key, save_and_verify, expected_cep_target, expected_project_path) are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Set) and resource (project scratch disks) and enumerates the four disk categories it covers, so the agent knows exactly what state changes. It does not explicitly distinguish itself from the sibling set_scratch_disk_path, though "in one call" hints at the batch-versus-single difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit statement of when to use this tool versus set_scratch_disk_path (single-disk setter) or get_project_scratch_disks (reader), nor any prerequisite guidance such as needing a saved project. The only usable signal is the implicit "in one call" batch framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_scale_to_frame_sizeSet Scale To Frame SizeA

Enable 'Scale to Frame Size' so media fills the sequence frame. Accepts a timeline clip node ID (active sequence, same IDs as get_clip_properties) or a project item node ID or name. A timeline clip is resolved first and its source project item is updated through ProjectItem.setScaleToFrameSize(). ExtendScript exposes no getter for this flag, so the result is committed_unverified unless the timeline clip's Motion > Scale reads back changed (verified). Check with get_clip_properties.

NameRequiredDescriptionDefault
item_idYesTimeline clip node ID in the active sequence, or project item node ID or name
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds important behavior beyond annotations: no ExtendScript getter exists, so the result is committed_unverified unless the timeline clip's Motion > Scale reads back changed. It also discloses the underlying ProjectItem.setScaleToFrameSize() update path and verification check.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then covers input resolution and verification behavior. Dense but efficient; most sentences earn their place, though it could be slightly tighter around the ExtendScript details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a mutation tool with annotations and an output schema. It covers purpose, accepted IDs, resolution order, verification limits, and how to check the result, which is enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description still adds meaning by explaining that item_id may be a timeline clip node ID, project item node ID, or name, and that timeline clips are resolved first.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and effect: enabling the 'Scale to Frame Size' flag so media fills the sequence frame. It clearly identifies the resource and distinguishes itself from generic scale tools like set_clip_scale by naming the Premiere flag semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains accepted identifier forms and resolution order: timeline clip ID first, then project item ID or name. It also points to get_clip_properties for checking the result, but does not explicitly contrast when to use this versus sibling scaling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_scale_width_heightSet Scale Width HeightA

Set independent width and height scale on a clip. Turns Uniform Scale off, writes Motion > Scale Width (width) and Motion > Scale (which Premiere uses as the height once Uniform Scale is off), then reads all three back. Fails when a value does not read back.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
scale_widthYesScale width percentage (0-10000)
scale_heightYesScale height percentage (0-10000). Written to Motion > Scale, which is the height when Uniform Scale is off.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety profile (not read-only, not destructive, not idempotent), so the description adds real value by disclosing that Uniform Scale is toggled off, that height is written into the Motion > Scale slot, that three values are read back for verification, and that the call fails if a value does not read back. It does not discuss partial-application recovery or whether a failed read-back leaves the scale partly changed, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the core action and scope, then the mechanism, then the verification/error behavior. No filler and nothing repeated from the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers the mutation mechanics and failure mode. For a 6-parameter, nested-guard mutation tool the omission is minor: it says nothing about how the idempotency key or expected_* guards interact with retries, though the schema covers those.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents node_id, scale_width, scale_height, idempotency_key and the guard parameters in detail. The description adds one genuinely useful mapping (height goes to Motion > Scale, not Scale Height), which is already mirrored in the schema, but adds nothing about idempotency_key or the expected_* guards.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Set independent width and height scale on a clip') and explains the underlying host mechanism (Uniform Scale off, writes Scale Width plus Motion > Scale). An agent can distinguish it from the generic scaling sibling, but the description never names set_clip_scale or set_uniform_scale, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies when this tool is needed (when you want width and height to differ) via the 'independent' and 'turns Uniform Scale off' framing, and it states a failure condition. But it gives no explicit guidance on when to prefer this over set_clip_scale or set_uniform_scale, and no prerequisites for the clip state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_scratch_disk_pathSet Scratch Disk PathA

Set one project scratch disk (captured media, previews, auto-save, CC Libraries or Motion Graphics template media) to an existing folder or "SameAsProject", using Premiere's ScratchDiskType constants.

NameRequiredDescriptionDefault
pathYesAbsolute path of an existing folder, or "SameAsProject"
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
save_and_verifyNoSave the project afterwards and confirm the saved scratch-disk settings (default: false). Premiere has no scratch-disk getter, so without this the result is unverified.
scratch_disk_typeYesWhich scratch disk to set
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so safety intent is covered. The description adds one genuine behavioral point – the target folder must already exist (the tool will not create it). It says nothing about whether the change is verified/persisted, though the schema's save_and_verify field covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence carrying the verb, resource, valid value forms and the constants reference. The category list is somewhat redundant against the enum but it is compact and read in one pass.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, an output schema and full schema coverage, most of the burden is already carried elsewhere. The remaining gap is that no sibling differentiation or verification guidance appears in the description, which matters in a ~400-tool surface containing set_project_scratch_disk and get_project_scratch_disks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter, including the idempotency key, save_and_verify and guard fields, is documented in the schema. The description's parenthetical list of scratch disk types merely restates the scratch_disk_type enum rather than adding meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Set one project scratch disk") and enumerates the affected media categories, so an agent knows what is being changed. However, it never distinguishes itself from the near-identical sibling set_project_scratch_disk, leaving the singular-vs-plural split to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "Set one project scratch disk" implies a single-disk scope that hints at the plural sibling, and the path constraint (existing folder or SameAsProject) is stated. But there is no explicit when-to-use/when-not-to-use guidance, no mention of get_project_scratch_disks for inspection first, and no prerequisite context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sequence_audio_settingsSet Sequence Audio SettingsC

Change audio settings of the active sequence (sample rate, channel type).

NameRequiredDescriptionDefault
sample_rateNoAudio sample rate (e.g., 44100, 48000, 96000)
channel_typeNoChannel type: 0=Mono, 1=Stereo, 2=5.1, 3=Multichannel
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare a non-read-only, non-destructive mutation, so the agent knows it writes, but the description adds nothing beyond that: no note that all five parameters are optional, no indication that a change may require a matching sample-rate value, and no mention of the expected_cep_target / expected_project_path pre-flight guards or the idempotency_key retry contract that the schema documents at length. It also doesn't contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with zero filler; nothing to trim. It is arguably too terse for a mutation tool with nested guard objects, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutation with nested objects and no descriptive annotations, the description omits any warning that this alters the whole active sequence, that guard fields are optional, or how idempotency/retry behaves. The rich schema and output schema cover mechanics, but the description leaves an agent without the behavioral framing needed to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both functional parameters (sample_rate, channel_type) are already fully documented in the schema. The description merely enumerates the same two names, adding no units, valid ranges, or channel-type encoding 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource ('Change audio settings of the active sequence') plus the exact two fields it touches, which meaningfully separates it from nearby siblings like set_sequence_settings, set_sequence_frame_rate, set_sequence_resolution, and set_sequence_field_type. It stops short of explicitly naming those siblings, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this instead of set_sequence_settings (the general settings tool) or the other per-property siblings, and no prerequisites. The only scoping is the implicit 'active sequence' qualifier hidden inside the purpose sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sequence_display_formatSet Sequence Display FormatA

Set the timecode display format for the active sequence and read it back. Uses Premiere's display codes (video 100-113, audio 200-201); the older 0-11 and 0-1 values are mapped onto them.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
audio_display_formatNoAudio: 200=Audio Samples, 201=Milliseconds. 0 and 1 are accepted as 200 and 201.
video_display_formatNoVideo: 100=24 Timecode, 101=25 Timecode, 102=29.97 Drop-frame, 103=29.97 Non-drop-frame, 104=30 Timecode, 105=50 Timecode, 106=59.94 Drop-frame, 107=59.94 Non-drop-frame, 108=60 Timecode, 109=Frames, 110=23.976 Timecode, 111=Feet+Frames 16mm, 112=Feet+Frames 35mm, 113=48 Timecode. 0-13 are accepted as 100-113.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it is not read-only, not destructive, and not open-world, so the description does not need to restate safety. It adds useful behavior beyond annotations by stating that the value is read back and by documenting Premiere display-code ranges and legacy mapping.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with no waste. The core action and scope are front-loaded, followed by only the necessary code-range note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has rich schema descriptions, an output schema, and annotations covering safety, so the description does not need to explain every guard parameter or return value. It is complete enough for correct selection, though it does not explain the optional CEP/project-path preflight checks in prose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already documents video/audio display codes, legacy mappings, idempotency_key, and CEP/project guard parameters in detail. The description repeats the code ranges but adds little parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: setting the timecode display format for the active sequence, and it also says the value is read back. This clearly distinguishes it from broader sequence-setting or read-only inspection siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'for the active sequence,' but the description does not explicitly say when to use this instead of set_sequence_settings or get_sequence_settings. It gives enough context to infer the tool's role but leaves alternatives unaddressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sequence_field_typeSet Sequence Field TypeC

Set the field order of the active sequence.

NameRequiredDescriptionDefault
field_typeYes0=No Fields (Progressive), 1=Upper Field First, 2=Lower Field First
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is known, but the description adds nothing beyond 'active sequence'. It does not say the change is a project mutation affecting rendered output, whether it is undoable, or that field-order changes can reinterpret existing interlaced media.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler or repetition. It is efficient, though the brevity is achieved by omitting information rather than by tight structuring of necessary content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a nested pre-condition guard hierarchy (expected_cep_target, expected_project_path) plus an idempotency key, indicating a mutation with real concurrency and target-verification concerns, yet the description is one sentence. An output schema exists so return values need not be explained, but the operational context an agent needs before mutating a sequence is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enum-like field_type mapping (0=Progressive, 1=Upper Field First, 2=Lower Field First) and the extensive idempotency/expected_* guard docs are already in the schema. The description adds nothing about parameter values or guard semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and target: settings the field order (interlacing dominance) of the active sequence. An agent can tell what changes. However it does not distinguish this from the closely related sibling set_sequence_settings, which plausibly also covers field order, and the name says 'field type' while the description says 'field order'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this rather than set_sequence_settings or set_sequence_frame_rate/resolution, no mention of prerequisites such as an open sequence or an editable project state. The agent is left to infer the choice entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sequence_frame_rateSet Sequence Frame RateA

Change the frame rate of the active sequence and verify it. Premiere re-snaps every clip to the new frame grid, so clips off that grid move by up to a frame; the result lists them (clipsMoved, movedClips) and changing back does not restore them.

NameRequiredDescriptionDefault
frame_rateYesNew frame rate (e.g., 23.976, 24, 25, 29.97, 30, 50, 59.94, 60)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations by disclosing the concrete side effect: Premiere re-snaps every clip to the new frame grid and off-grid clips shift by up to a frame, with named result fields (clipsMoved, movedClips) so the caller can audit the damage. The irreversibility note ("changing back does not restore them") is exactly the kind of behavior an agent cannot infer from destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste: the first front-loads purpose and verification, the second carries the risk and the audit fields. Nothing is repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety profile, a rich schema covering all four parameters, and an output schema covering returns, the description supplies precisely the missing piece: the irreversible timeline consequence and how to detect it in the result. An agent has everything needed to call this correctly and to warn about the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including accepted frame-rate examples and the full idempotency_key and expected_cep_target guard semantics, so the schema does the heavy lifting. The description adds no new parameter meaning; the field names it mentions (clipsMoved, movedClips) are outputs, not inputs, and an output schema exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Change the frame rate of the active sequence") plus a post-condition ("verify it"), so the agent knows exactly what mutates and what scope it applies to (active sequence only). It stops short of naming a sibling such as set_sequence_settings or set_sequence_resolution, so the differentiation is inferable rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb and the warning that "changing back does not restore them" effectively signals when not to use it casually. There is no explicit statement of prerequisites (which sequence must be active), no named alternative for broader sequence settings changes, and no guidance on when the risk is acceptable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sequence_in_out_pointsSet Sequence In Out PointsA

Set the sequence in and out points (for an export range, etc.) and read them back. out_seconds must be after in_seconds and not past the sequence end.

NameRequiredDescriptionDefault
in_secondsYesIn-point in seconds (0 or later)
out_secondsYesOut-point in seconds; after in_seconds and not past the sequence end
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false. The description adds the export-range context and read-back behavior, but does not disclose overwrite semantics, permission requirements, or how validation failures are surfaced; the stated in/out ordering constraint is also already present in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is two tight sentences, front-loaded with the operation and followed by the essential range constraint. There is no redundant or wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, schema coverage is complete, and annotations cover the safety profile, so the description does not need to explain return values or optional guard details. It covers the core mutation and key constraint, though it leaves sibling selection and overwrite behavior implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents in_seconds, out_seconds, idempotency_key, and the guard parameters. The description repeats the out_seconds ordering constraint but adds no parameter meaning beyond the schema, making the baseline of 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Set the sequence in and out points.' The sequence scope distinguishes it from sibling tools such as set_item_in_out and set_source_in_out, but it does not explicitly differentiate it from get_sequence_in_out_points or clear_sequence_in_out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical 'for an export range, etc.' gives an implied usage context. However, the description does not say when to use this instead of get_sequence_in_out_points, clear_sequence_in_out, or other in/out setters, and provides no explicit exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sequence_pixel_aspect_ratioSet Sequence Pixel Aspect RatioB

Change the pixel aspect ratio of the active sequence, or return a capability error when the legacy host does not expose a writable setting.

NameRequiredDescriptionDefault
ratioYesPixel aspect ratio string (for example '1.0' for square pixels or '1.4222' for 16:9 DV).
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, non-open-world mutation. The description adds useful context that legacy hosts may return a capability error when no writable setting exists, but it does not mention reversibility, permission requirements, or the idempotency behavior exposed in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted text. It states the primary action first and then the capability-error condition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a complex optional CEP target guard, an idempotency key, and a project-path guard, all documented richly in the schema, and an output schema exists. The description covers purpose and one failure mode but omits high-level guidance about the guards and idempotency, so it is adequate but sparse for this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters, including the nested CEP target guard and idempotency key, are already documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, making the baseline score of 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: changing the pixel aspect ratio of the active sequence. It is clear enough for an agent to understand the operation, but it does not distinguish this tool from the sibling set_override_pixel_aspect_ratio or clarify active-sequence scope vs item-level override.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives no explicit when-to-use guidance, prerequisites, or alternatives. The only condition mentioned is a capability error on legacy hosts, which is behavioral rather than usage guidance, so the agent must infer when this tool is preferable to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sequence_resolutionSet Sequence ResolutionB

Change the resolution (frame size) of the active sequence.

NameRequiredDescriptionDefault
widthYesWidth in pixels
heightYesHeight in pixels
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this as a non-read-only, non-destructive, non-idempotent mutation, and the description adds that it targets the active sequence. However, it does not disclose practical effects such as whether existing clips are scaled or only the sequence settings change, nor does it mention the guard/idempotency behavior described in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no wasted wording. The purpose is stated immediately and nothing is repeated from the title unnecessarily.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Rich structured data is present: annotations, an output schema, and full parameter descriptions. Still, for a mutation tool with nested guard parameters and many sequence-setting siblings, the one-line description is thin on when to use it versus alternatives and on the practical effect of changing resolution.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents width, height, idempotency_key, and the expected CEP/project guards. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb and resource: change the resolution (frame size) of the active sequence. It is specific about the target, but it does not distinguish this tool from close siblings such as set_sequence_settings, set_sequence_pixel_aspect_ratio, or set_sequence_frame_rate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool operates on the active sequence, but it gives no explicit guidance on when to choose this tool over set_sequence_settings or related sequence-setting tools. There are no exclusions, prerequisites, or alternative branches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sequence_settingsSet Sequence SettingsC

Modify and read back sequence frame-size settings.

NameRequiredDescriptionDefault
widthNoFrame width in pixels
heightNoFrame height in pixels
sequence_idNoSequence name or ID. Uses active sequence if omitted.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, and the description stays consistent with that. But beyond restating that it modifies, it adds nothing: no mention of whether existing settings are reset, whether the call requires a paused/active sequence, or how the read-back differs from get_sequence_settings. A tool with an idempotency_key parameter whose annotation says idempotentHint=false especially deserves a clarifying sentence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler — the core mutation is stated first and the read-back second. It is efficient, though its brevity contributes to the gaps elsewhere rather than being optimal density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters including a nested expected_cep_target guard object, an idempotency_key with a detailed retry contract, and an output schema, the description does almost nothing to orient the agent. It never says that the guards are optional pre-mutation checks or what the read-back returns, leaving the schema to carry the whole burden for a moderately complex mutating tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies; the description correctly signals that width/height are the operative fields. It adds no meaning about the interaction between width and height, the sequence_id default, or the CEP guard parameters, but the schema already carries those.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb ("Modify") and a resource ("sequence frame-size settings" with a read-back), which is clearer than a tautology. However, the sibling set contains set_sequence_resolution, set_sequence_pixel_aspect_ratio, and set_sequence_frame_rate, all of which plausibly touch 'frame-size settings', and the description never distinguishes this tool from them. An agent cannot tell from the text whether this is a distinct tool or an alias.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this rather than set_sequence_resolution or set_sequence_frame_rate, no prerequisites, and no statement of whether width and height must be supplied together or what happens when only one is given. Usage is only implied by the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_source_in_outSet Source In OutA

Set in and/or out points on the clip currently open in the Source Monitor.

NameRequiredDescriptionDefault
in_secondsNoIn point in seconds. Provide this, out_seconds, or both.
out_secondsNoOut point in seconds. Provide this, in_seconds, or both.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is carried by structured data. The description's 'in and/or out' wording usefully signals partial update (setting one point leaves the other intact), but it says nothing about overwriting existing marks, whether the clip must be open first, or prerequisites. With annotations present, this is adequate but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero waste, and the operative scope ('currently open in the Source Monitor') is front-loaded. Nothing is repeated from the name or title beyond necessity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is fully documented, including the idempotency and CEP guard parameters, so the description does not need to restate them. What is missing is any note that at least one of in_seconds/out_seconds is required (only encoded in anyOf) and how this tool relates to the sequence/item in-out siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including detailed docs for in_seconds, out_seconds, idempotency_key, and the expected_* guards, so the baseline is 3. The description adds no meaning beyond the schema — nothing about zero-based timing, units, frame snapping, or how out must relate to in.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Set) and resource (in/out points) and scopes it precisely to 'the clip currently open in the Source Monitor'. That scope wording implicitly separates it from set_sequence_in_out_points and set_item_in_out, but it never names those siblings, so the differentiation requires the agent to already know their scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The Source Monitor scope implies when the tool applies, but there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. set_sequence_in_out_points for sequence marks, set_item_in_out for project-item marks). The agent must infer the boundary from the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_start_timeSet Start TimeC

Set the start time (timecode offset) for a project item

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
start_secondsYesStart time in seconds
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare that this is a non-read-only, non-destructive, non-idempotent mutation, but the description adds almost no behavioral context beyond clarifying that the value is a timecode offset. It does not explain what changes on the project item, whether timing or media interpretation is affected, or what a caller should expect when the operation is applied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with the core action front-loaded and no wasted words. It is perhaps too terse for the tool's complexity, but structurally it is clean.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a mutation tool with five parameters, nested identity guards, idempotency semantics, and an output schema, yet the description only says what the primary operation is. It omits when to use the tool, how project-item start time relates to timeline placement, and why the guard parameters exist, leaving the schema and annotations to carry nearly all contextual burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so item_id, start_seconds, idempotency_key, and the guard parameters are already documented in the schema. The description only echoes 'timecode offset' for start_seconds and does not add meaningful semantics beyond the structured parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: setting the start time (timecode offset) for a project item. The phrase 'project item' helps distinguish it from the nearby sibling set_clip_start_time, which likely operates on timeline clips, though the distinction is not made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as set_clip_start_time, set_clip_position, or set_item_in_out. It also does not mention prerequisites, supported item types, or conditions under which the operation would fail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_target_trackSet Target TrackA

Target or untarget one video or audio track for source-patched insert/overwrite edits. Premiere allows several tracks of a type to be targeted at once, so by default (exclusive=true) targeting a track also untargets every other track of the same type. Reads back every track of that type and reports verified only when the readback matches the requested state; otherwise committed_unverified or an error.

NameRequiredDescriptionDefault
targetedYesWhether to target (true) or untarget (false) the track
exclusiveNoWhen targeting (targeted=true), also untarget every other track of the same type so only this track is targeted (default: true). Ignored when targeted=false.
track_typeYesTrack type
track_indexYesTrack index (0-based)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses a non-obvious side effect that annotations cannot convey: targeting with exclusive=true untargets every other track of the same type. It also explains the verification contract (readback of all tracks of that type, yielding verified, committed_unverified, or an error), which is substantial behavioral detail beyond the readOnly/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose first, the surprising default-mutation semantics second, the verification outcome third. No filler and nothing important buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the schema fully documents the seven parameters including the nested identity guards. The description covers what the schema cannot: the exclusive side effect and the verified/committed_unverified result contract, leaving nothing an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents exclusive's default and ignored-when-untargeting behavior, idempotency_key's full lifecycle, and the expected_cep_target guard. The description restates the exclusive default rather than adding new meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Target or untarget one video or audio track') plus its scope ('for source-patched insert/overwrite edits'). This cleanly separates it from siblings like set_all_tracks_targeted, get_target_tracks, mute_track and lock_track without the agent needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use ('source-patched insert/overwrite edits') and explains the default exclusive behavior, which implies when to pass exclusive=false. It stops short of naming alternatives such as set_all_tracks_targeted or get_target_tracks, so there is no explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_time_interpolationSet Time InterpolationA

Request time interpolation for a clip (Frame Sampling, Frame Blending, Optical Flow) through QE DOM. Premiere exposes no interpolation readback, so the result is committed_unverified and must be checked in Effect Controls.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
interpolation_typeYes0 = Frame Sampling, 1 = Frame Blending, 2 = Optical Flow
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (destructiveHint=false, openWorldHint=false), so the bar is lower, and the description still adds a genuinely non-obvious trait: Premiere exposes no interpolation readback, so the result returns as committed_unverified and must be confirmed in Effect Controls. That is the key caveat an agent needs. It stops short of mentioning the idempotency caveat despite idempotentHint=false and a detailed idempotency_key parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the operation and its options come first, the verification caveat second. Nothing is redundant and every clause carries information an agent would otherwise have to guess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full param coverage in the schema, the description only needs to cover behavior, and the committed_unverified readback limitation is the crucial piece. Minor gap: it does not touch the expected_cep_target / expected_project_path guards or the retry semantics of idempotency_key, which matter for a mutation tool flagged idempotentHint=false.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents node_id, interpolation_type, idempotency_key, and the guard objects in depth. The description only restates the 0/1/2 mode mapping that the schema already provides, adding no semantics beyond it. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Request time interpolation for a clip') and enumerates the exact modes (Frame Sampling, Frame Blending, Optical Flow), which separates it from adjacent siblings like set_frame_blend or set_clip_speed_qe. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the operational context (QE DOM edit on a clip) and warns that verification happens in Effect Controls, but it never says when to choose this over similar siblings such as set_frame_blend or speed_change, nor does it state prerequisites or exclusions. Usage is inferable 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_transcode_on_ingestSet Transcode On IngestA

Request enabling or disabling project transcoding on ingest. Premiere exposes no getter for independent verification, so dispatch is reported as requested_unverified.

NameRequiredDescriptionDefault
enabledYesTrue to enable transcode on ingest, false to disable
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say this is a non-read-only, non-idempotent, non-destructive mutation, so the description is right to add the crucial caveat: Premiere has no getter, so the result is a best-effort dispatch reported as requested_unverified rather than a confirmed change. That is real value beyond the structured fields, though it stops short of noting permission requirements or what an agent should do next after an unverified result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with the caveat front-loaded right after the action, zero filler. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full schema coverage, the description only needs to carry the behavioral gap, and it does so via the unverified-dispatch note. A little more on preconditions (saved project, CEP backend guard) would complete it, but nothing an agent needs to invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested expected_cep_target/expected_project_path guards and idempotency_key are thoroughly documented in the schema itself, so the baseline of 3 applies. The description mentions 'request' semantics but adds no parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (enable/disable) and a specific resource (project transcode-on-ingest setting), which is unambiguous against settings-related siblings like set_sequence_settings or set_override_frame_rate. It does not explicitly name a sibling it is distinguished from, keeping it just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to reach for this tool versus alternatives, no prerequisites (saved project, active sequence, CEP vs UXP backend), and no exclusions. The only usage-adjacent information is that the outcome cannot be verified, which is behavioral rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_uniform_scaleSet Uniform ScaleB

Toggle uniform scale on a clip's Motion effect. When enabled, Scale Width and Scale Height are linked.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
uniformYestrue for uniform (linked), false for non-uniform (independent width/height)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description only needs added context. It clarifies the semantics of toggling, but omits prerequisites (a Motion effect must exist on the clip), whether the change is undoable, and how failures surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, action first, with the behavioral consequence in the second sentence. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema is heavy — idempotency key with retry semantics, a nested CEP guard object, project-path guard — yet the description touches none of it. For a mutation tool on a Motion effect, the agent gets no guidance on preconditions or guard usage, leaving a large gap relative to the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id and uniform are already fully documented and the baseline is 3. The description's 'linked' phrasing reinforces the meaning of uniform=true but adds nothing about idempotency_key or expected_cep_target guard parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Toggle uniform scale on a clip's Motion effect,' which is concrete enough to distinguish it from generic scale tools. It does not, however, differentiate itself from close siblings such as set_scale_width_height or set_clip_scale, so the agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'When enabled, Scale Width and Scale Height are linked' implies the use case, but there is no explicit when-to-use/when-not guidance and no named alternatives. Nothing tells the agent to prefer set_scale_width_height for direct numeric scaling instead of this toggle.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_duckingSetup DuckingA

Build a verified Volume > Level keyframe curve for one audio clip. Ducking-window times are relative to that clip's start; overlapping or out-of-range windows are rejected before any keyframe write.

NameRequiredDescriptionDefault
base_dbNoNormal clip level in dB (defaults to 0; maximum +15 dB).
node_idYesTimeline audio-clip node ID.
fade_secondsNoFade length on each side of a window in seconds (defaults to 0.2).
ducking_windowsYesNon-overlapping windows during which this clip should be quieter.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare this is a non-readonly, non-destructive write, so the description usefully adds that windows are relative to the clip start and that overlapping or out-of-range windows are rejected before any keyframe write. It does not clarify whether existing keyframes are replaced or how they are merged, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences front-load the purpose, then immediately add the most important coordinate and validation behavior. There is no redundant or wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich parameter descriptions, annotations, and an output schema, the description covers the core operation and key rejection behavior. It could still say more about existing keyframe handling, but 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 7 parameters including the relative-to-clip-start window semantics. The description reinforces the time reference but adds no additional meaning for base_db, fade_seconds, idempotency_key, or the CEP guard parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: build a verified Volume > Level keyframe curve for one audio clip. It is clearly about ducking rather than generic audio adjustment, though it does not explicitly distinguish itself from siblings such as add_audio_keyframes or adjust_audio_levels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'for one audio clip' and the focus on ducking windows, which tells the agent this is for clip-level ducking automation. However, there is no explicit when-to-use guidance, no exclusions, and no named alternatives for generic keyframing or volume adjustment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_work_areaSet Work AreaA

Set and verify the work-area points, turning the bar on first through the public Sequence API when it is off. Fails when Premiere leaves the points unchanged (26.5.2 ignores these CEP writes; use the UXP set_work_area there) and turns the bar back off if this call turned it on. Unreadable or partial writes report committed_unverified.

NameRequiredDescriptionDefault
in_secondsYesWork area in-point in seconds
out_secondsYesWork area out-point in seconds
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing side effects: the bar is turned on first via the public Sequence API and turned back off if this call enabled it, so state is restored. It also names the failure mode (points unchanged) and the partial-write outcome committed_unverified. Missing: any statement of the active-sequence requirement or what verification actually checks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with the core action and the version caveat front-loaded; every clause carries information. The parenthetical version note is slightly compressed but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with an output schema, the description covers side effects, rollback behavior, the silent-no-op failure, and the unverified outcome, which is what an agent needs to act safely. A mention of the active-sequence precondition and how verification is judged would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so in_seconds, out_seconds, idempotency_key and the expected_* guards are fully documented in the schema. The description adds no meaning to any parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Set and verify the work-area points") and names the UXP variant as the alternative on 26.5.2. It does not distinguish from adjacent siblings such as get_work_area or set_sequence_in_out_points, so an agent must infer that work area differs from sequence in/out points.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete conditional alternative: "26.5.2 ignores these CEP writes; use the UXP set_work_area there." That is real routing guidance. It stops short of 5 because it never says when to prefer this over get_work_area for inspection or set_sequence_in_out_points, nor what state (active sequence) must exist first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_workspaceSet WorkspaceA

Request a workspace layout. The documented API has no current-workspace getter; acceptance is committed_unverified and the visible layout must be checked in Premiere.

NameRequiredDescriptionDefault
nameYesName of the workspace to activate (use get_workspaces to see available options)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds genuinely useful context beyond the annotations: the documented API has no current-workspace getter, so acceptance is 'committed_unverified' and the visible layout must be checked manually in Premiere. That discloses an outcome-verification limitation the agent could not infer from readOnlyHint/idempotentHint alone. It stops short of saying what happens on an unknown name or whether the change is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the action stated first and the verification caveat second. Nothing repeats the title or the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with an output schema and fully documented parameters, the critical operational caveat (unverifiable acceptance) is present, so an agent can call it safely and knows to verify elsewhere. What is missing is the routing/selection guidance that would tie it to get_workspaces.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, including a long idempotency_key description and guards (expected_cep_target, expected_project_path), the schema does the heavy lifting, so the baseline applies. The description does not contradict or add to those guards; the only param-adjacent hint is the 'committed_unverified' outcome framing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource pair ('Request a workspace layout') gives a rough idea, but 'request' is soft and the description never says the tool activates/changes the current workspace layout in Premiere. It also does not distinguish itself from the sibling get_workspaces, which it is clearly paired with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus get_workspaces, no precondition that a workspace name must come from get_workspaces (that only appears in the schema), and no note about when not to use it. The only guidance is post-call verification, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_xmp_metadataSet Xmp MetadataA

Merge a raw XMP XML patch into a project item's existing XMP metadata without removing unrelated fields. WARNING: Premiere writes XMP into the source media file on disk (the file's metadata block and modification time change; picture and sound are untouched). Each supplied leaf field is compared with host readback (maximum 256); unreadable readback remains committed_unverified. Requires the filesystem capability.

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
xmp_xmlYesWell-formed XMP XML containing only the fields to add or replace
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false. The description adds real value beyond them, especially the disclosure that Premiere writes into the source media file on disk and changes its modification time, the 256 leaf-field readback verification cap, the committed_unverified outcome for unreadable readback, and the filesystem capability prerequisite. These are meaningful behavioral traits that annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the merge purpose followed immediately by the disk-write warning, then verification semantics and the capability requirement. Dense but each sentence carries operational weight; only the 'picture and sound are untouched' aside borders on redundant reassurance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with nested guard objects, an output schema and 100% schema coverage, the description covers the two things an agent cannot learn from structured fields: the on-disk side effect and the verification/unverified outcome model. It stops short of noting prerequisites such as an open, saved project that the expected_project_path guard implies, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents item_id, xmp_xml, idempotency_key and both guard parameters in detail. The description adds a little meaning for xmp_xml (patch semantics, leaf-field comparison cap of 256) but says nothing about the two optional guard parameters beyond what the schema already states. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb (merge), a precise resource (raw XMP XML patch) and a precise target (a project item's existing XMP metadata), plus the merge-vs-replace semantic that separates it from a plain overwrite. It does not name the nearest siblings (get_xmp_metadata, set_metadata, set_project_panel_metadata), so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Merge ... without removing unrelated fields' implies when this is preferable to a full replacement, but there is no explicit when-to-use, when-not, or named alternative among the many metadata siblings. The agent must infer the routing decision from the merge wording alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_zero_pointSet Zero PointA

Set the starting timecode (zero point) of a sequence and read it back. The value is snapped to the sequence frame grid; for drop-frame 29.97, 01;00;00;00 is 3599.9964 s, and for non-drop 29.97 it is 3603.6 s.

NameRequiredDescriptionDefault
sequence_idNoSequence name or ID. Uses active sequence if omitted.
start_secondsYesStart time in seconds for the timecode origin (0 or more)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose that this is a non-read-only, non-destructive, non-idempotent mutation. The description adds useful behavioral context beyond the annotations by stating that the value is snapped to the sequence frame grid and by giving concrete drop-frame and non-drop 29.97 examples.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with the core action front-loaded and the snapping qualification immediately after. Every sentence adds useful information with no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core mutation, read-back behavior, and snapping rules; the rich schema documents the guards and parameters, and an output schema exists. It does not discuss idempotency or expected-identity guards, but those are fully specified in the schema rather than omitted entirely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaningful semantics for start_seconds by explaining frame-grid snapping and showing timecode-to-seconds conversions. The remaining parameters are documented in the schema, so the description reasonably focuses on the primary behavioral parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: setting the starting timecode (zero point) of a sequence and reading it back. It is clear what the tool does, but it does not explicitly distinguish itself from nearby sequence-time tools such as set_start_time or set_sequence_in_out_points.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose statement: use this to set a sequence's timecode origin. The description gives no explicit when-to-use, when-not-to-use, or alternative-tool guidance, so an agent must infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slide_editSlide EditA

Perform a verified slide edit on a clip using adjacent clips from the public timeline DOM. Linked audio/video partners get the same edit by default (include_linked); every clip is checked before any is changed. Requires readable finite media and ffprobe duration evidence for every edited source; refuses unknown duration, stills, and nonunit/reversed speed before mutation. Existing host Out padding below one sequence frame may be preserved or reduced, but never used to create additional padding.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
include_linkedNoAlso apply the edit to the clip's linked audio/video partners so picture and sound stay in sync (default: true).
offset_secondsYesOffset in seconds (positive = slide right, negative = slide left)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses important behavioral traits: all clips are checked before any mutation, linked audio/video partners receive the same edit by default, and existing Out padding may be preserved or reduced but never used to create additional padding. These details meaningfully supplement the read-write, non-destructive, non-idempotent annotation profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation and then proceeds through validation rules and padding behavior. It is dense and technical, but every sentence contributes relevant operational context for a complex mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich nested schema, full parameter description coverage, annotations, and output schema, the description is largely complete for calling the tool correctly. It covers purpose, preconditions, linked behavior, and padding semantics; details like idempotency and expected identity guards are left to the schema, which documents them thoroughly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters in detail. The description mentions include_linked behavior and offset direction, but does not add much beyond the schema for node_id, idempotency_key, expected_cep_target, or expected_project_path.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: a verified slide edit on a clip using adjacent clips. It is clear what operation is performed, though it does not explicitly name sibling operations such as slip_edit or roll_edit for contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear usage context and explicit refusal conditions: readable finite media, ffprobe duration evidence, unknown duration, stills, and nonunit/reversed speed are all addressed. It does not, however, explicitly say when to choose slide_edit over adjacent editing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slip_editSlip EditA

Perform a verified slip edit on a clip using public source in/out properties. Requires accessible physical media duration from ffprobe; unknown duration or linked partners using different source files refuse before mutation. Linked audio/video partners get the same edit by default (include_linked); every clip is checked before any is changed. Existing host Out padding below one sequence frame may be preserved or reduced, but never used to create additional padding.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
include_linkedNoAlso apply the edit to the clip's linked audio/video partners so picture and sound stay in sync (default: true).
offset_secondsYesOffset in seconds (positive = slip forward in source, negative = slip backward)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations (readOnlyHint=false, destructiveHint=false) by disclosing the pre-flight guarantee that every clip is checked before any is changed, the fail-closed requirement for media duration, the default propagation to linked audio/video partners, and a specific edge case about existing Out padding below one sequence frame. This is exactly the mutation-safety context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences that front-load the action and then layer preconditions and edge cases; there is little waste. The final padding clause is quite compressed and would repay a slower read, but every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with an output schema (so return values need no explanation) and six parameters including a nested guard object, the description covers preconditions, refusal behavior, linked-partner default and a padding edge case. It omits rollback/verification detail and post-edit confirmation semantics, but nothing an agent needs in order to call it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so 3 would be the baseline, but the description adds mechanism that informs how offset_seconds is bounded: the slip is computed against public source in/out properties constrained by physical media duration, and include_linked's default propagation is stated in prose. It stops short of spelling out the sign convention, which the schema already handles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: a slip edit on a clip, computed from public source in/out properties. An agent can distinguish it from neighbors like slide_edit, roll_edit or trim_clip by the term 'slip' alone, though the description never names those siblings to draw the contrast explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-not conditions: it refuses before mutation when ffprobe cannot report a physical media duration, and when linked partners reference different source files. It does not, however, say when to prefer slip_edit over slide_edit/roll_edit/trim_clip, leaving alternative selection to the agent's own understanding of the edit type.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

speed_changeSpeed ChangeA

Unavailable: Premiere's documented ExtendScript and UXP APIs have no setter for a timeline clip's speed (only getters), and the undocumented QE setSpeed is deliberately not used. Always fails before mutation. To change how long a clip runs on the timeline, use set_clip_duration.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip
reverseNoReverse playback direction (default: false)
speed_percentYesSpeed as percentage (100 = normal, 200 = double, 50 = half)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the critical behavior beyond annotations: the tool always fails, it fails before any mutation, and why (no documented setter; QE setSpeed deliberately excluded). This is consistent with destructiveHint=false since nothing is applied. It stops short of naming the exact error code the agent should expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, the unavailability is front-loaded immediately after the label so an agent knows within a few words, and the alternative follows without waste. No repetition of schema or annotation data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deliberately failing stub with an output schema present, the description supplies everything needed: it will not work, why, and which tool to call instead. Nothing further is required for correct selection behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id, speed_percent, reverse and the guard/idempotency parameters are fully documented in the schema. The description adds nothing per-parameter, which is acceptable given the tool is a guaranteed no-op, but it does not compensate beyond baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource (changing a timeline clip's speed) and immediately declares the tool cannot perform it, with the API reason. It does not explicitly name set_clip_speed_qe, the sibling that actually offers speed changes via QE, though it references 'the undocumented QE setSpeed' which implicitly explains that sibling's existence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-not ('Always fails before mutation') plus a concrete alternative: 'To change how long a clip runs on the timeline, use set_clip_duration.' This is exactly the routing information an agent needs to avoid wasting a call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

split_clipSplit ClipA

EXPERIMENTAL (undocumented QE DOM): Split every clip on one track that spans a timeline time, then verify both resulting boundaries. Effect-keyframe redistribution remains unverified.

NameRequiredDescriptionDefault
track_typeNoTrack type (default: video)
track_indexNoTrack index (0-based, default: 0)
time_secondsYesTimeline time in seconds where clips on the selected track will split
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds genuinely non-obvious behavioral facts: the tool rides the undocumented QE DOM, it is EXPERIMENTAL, it self-verifies the resulting boundaries, and effect-keyframe redistribution is a known unverified gap — exactly the kind of risk an agent needs before calling it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the experimental caveat front-loaded where an agent will see it first, followed by the capability and the residual risk. No filler, though readability suffers slightly from dense parenthetical phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and parameters are fully covered by the schema. The description supplies what structured data cannot: experimental status, the QE-DOM dependency, the boundary-verification behavior, and the keyframe limitation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the six parameters (including idempotency_key and the nested expected_cep_target guard) are fully documented in the schema. The description only echoes 'timeline time' and 'one track' and adds no format, default, or interaction semantics beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (split) plus precise scope: 'every clip on one track that spans a timeline time,' which implicitly separates it from razor_all_tracks and ripple_remove ranges. It does not name a sibling explicitly, but the verb+resource+scope combination is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the scope sentence — split everything on a single track at a given time — but there is no explicit when-to-use/when-not statement and no named alternative (e.g. razor_all_tracks for multi-track splitting, or trim_clip/set_clip_duration for length changes).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stabilize_clipStabilize ClipA

Apply Warp Stabilizer using the experimental QE DOM. Verifies component addition and readable parameter values, never analysis completion. Numeric or unreadable Method popup values remain unverified because no documented label mapping is available.

NameRequiredDescriptionDefault
methodNoStabilization method (default: 'Subspace Warp')
node_idYesNode ID of the clip to stabilize
smoothnessNoStabilization smoothness percentage (default: 50). Higher = smoother but more cropping.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) by disclosing a non-obvious verification boundary: component addition and readable parameter values are confirmed, analysis completion never is, and Method popup values may stay unverified due to missing label mapping. The 'experimental QE DOM' framing also signals fragility. It still doesn't say what happens if a stabilizer already exists or whether the edit is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the operative claim (applies Warp Stabilizer via QE DOM) front-loaded, followed by the verification limits that an agent most needs. No filler or restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation with a nested CEP guard object and an output schema, the description supplies the key missing context an agent cannot get from structured fields: how far verification goes and where it stops. It does not address precondition checks or the read counterpart, but the output schema and parameter descriptions cover return shape and guard semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so node_id, method, smoothness and the idempotency/CEP guard parameters are already documented in the schema. The description adds one useful nuance — that a numeric or unreadable Method popup value cannot be verified — but says nothing about smoothness trade-offs or guard semantics beyond what the schema carries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and resource: applies Warp Stabilizer through the experimental QE DOM. An agent can tell what the call does, but the description never names the read-side sibling inspect_stabilizer_status or any other nearby tool, so differentiation is left to the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied — the agent can infer this is the mutation counterpart to stabilizer inspection, but the description gives no explicit when-to-use, when-not-to-use, or prerequisites (e.g. clip must be a timeline video clip, existing stabilizer replacement behavior).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_batch_encodeStart Batch EncodeA

Request Adobe Media Encoder to start the render queue; reports only accepted handoff, not queue progress or output-file creation.

NameRequiredDescriptionDefault
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the non-read-only, non-destructive profile, so the bar is lower, and the description adds genuinely useful context: the response means only that the handoff was accepted, not that encoding progressed or files exist. That prevents the agent from treating success as delivery. It stops short of stating failure modes or auth/application-running requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with zero filler; the action comes first and the result-semantics caveat follows. Everything stated earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and all three parameters are fully documented in the schema, so the description only needs to frame the call. It does that well by scoping what the result means, though it omits sequencing relative to the queueing and status siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including lengthy documentation on idempotency_key and expected_cep_target, so the schema carries parameter meaning entirely. The description says nothing about the optional idempotency key or the CEP identity guards, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: it starts Adobe Media Encoder's render queue. It is clearly a kick-off action rather than a queue-population tool, but it never names the sibling it differs from (add_to_render_queue, export_sequence_job_start), so the distinction is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (call after jobs are queued to begin rendering) but there is no explicit when-to-use, no prerequisite statement, and no named alternative such as get_render_queue_status for progress. An agent can guess the ordering but nothing confirms it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_local_analysis_jobStart Local Analysis JobB

Start one allowlisted read-only local media analysis as a bounded cancellable process job. Native Premiere jobs are never cancelled by this tool.

NameRequiredDescriptionDefault
argumentsYesExact analysis arguments, schema and authority checked before worker dispatch.
tool_nameYesSupported local analysis worker.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-read-only, non-destructive, non-idempotent, closed-world. The description adds real value beyond that: the work is allowlisted and read-only in nature, the job is bounded and cancellable, and cancellation explicitly does not reach native Premiere jobs. It omits how to obtain results or cancel the job (no pointer to inspect_workflow_job / wait_workflow_job / cancel_workflow_job or get_last_operations).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler; the core action is front-loaded and the cancellation-scope caveat follows immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations plus the rich schema cover safety and identity guards, so the description need not explain return values or parameters. What is missing is lifecycle context for an async job: how the started job is monitored or cancelled, which matters given sibling tools exist for exactly that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the tool_name enum, arguments, idempotency_key semantics and the CEP guard fields, so the baseline is 3. The description adds no parameter-level meaning (e.g. that tool_name must be one of the allowlisted workers, or that arguments are validated before dispatch).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: starting an allowlisted, read-only local media analysis as a process job. It does not, however, distinguish itself from the sibling direct-analysis tools (inspect_media_streams, detect_audio_transients, read_video_scopes) that appear both in the enum and in the sibling list, so an agent cannot tell from the description why to start a job instead of calling them directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use / when-not-to-use guidance and no alternatives named, despite an obvious alternative (calling the allowlisted analysis tools directly). Only an implicit signal: 'bounded cancellable process job' suggests long-running work, and 'Native Premiere jobs are never cancelled by this tool' is a scope caveat rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_playbackStop PlaybackA

Request that active-sequence timeline playback stop through QE. The legacy API does not provide a same-call playhead readback, so stopped state is not reported as verified. Only the timeline can be stopped: Premiere's scripting APIs have no documented call that stops the Source Monitor alone, so target "source" returns an error instead of stopping the timeline.

NameRequiredDescriptionDefault
targetNoWhat to stop. Default "timeline". "source" is refused because no documented API stops only the Source Monitor.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses that this goes through QE, that the legacy API has no same-call playhead readback, and that stopped state is not verified. It also discloses the source-target error behavior, though it does not describe timing or async behavior in detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and gives the most important behavioral caveats immediately. Three sentences, no filler, and the source-monitor caveat directly supports correct target selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and annotations already cover structural and safety details, while the description supplies the non-obvious operational caveats: no verified playhead readback and no documented source-monitor-only stop. That is complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters in detail. The description restates the target restriction for "source" but adds no meaningful semantics for idempotency_key or the expected CEP/project guards beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: stopping active-sequence timeline playback through QE. It also distinguishes the supported timeline target from the unsupported source monitor target, so an agent can separate it from playback-related siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly says only the timeline can be stopped and that target "source" returns an error, which is an explicit usage exclusion. It does not explicitly describe the condition 'when playback is active' or compare against play_timeline/play_source_monitor, but the context is still clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

toggle_track_visibilityToggle Track VisibilityA

Set video track visibility using Premiere's track mute state (eye icon) and read the mute state back. Premiere's scripting API exposes mute, not a separate video visibility setter.

NameRequiredDescriptionDefault
visibleYesTrue to show, false to hide
track_indexYesVideo track index (0-based)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds meaningful behavioral context beyond that: visibility is implemented through track mute, the mute state is read back, and Premiere exposes no separate video visibility setter. It does not explain idempotency or guard-parameter behavior, but those are documented in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with no filler. The core action is front-loaded, and the second sentence explains the important API workaround.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, output schema, and annotations, the description covers the core operation and the key implementation quirk. It omits explicit sibling routing and idempotency context, but those gaps are mitigated by structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines all parameters. The description adds no additional parameter-level meaning such as index conventions or idempotency semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: setting video track visibility, with the implementation detail that this uses Premiere's track mute state / eye icon. It does not explicitly name the sibling mute_track tool or clarify the audio-vs-video distinction, so it falls short of a full 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the operation name and the API limitation note, but there is no explicit guidance on when to prefer this over alternatives such as mute_track or when not to use it. The reader must infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trim_clipTrim ClipA

Trim exactly one source in/out point and verify the corresponding visible timeline edge. Requires accessible physical media duration from ffprobe; unknown duration or linked partners using different source files refuse before mutation. Refuses retimed clips, extensions that would overlap the neighbouring clip on the same track, and, by default, trims that would leave effect keyframes outside the visible clip. Linked audio/video partners get the same trim by default (include_linked), applied as the same offset from each partner's own source point so a J/L cut or slipped audio stays in sync; every clip is checked before any is changed. To set a clip's timeline length or extend a still image, use set_clip_duration. Existing host Out padding below one sequence frame may be preserved or reduced, but never used to create additional padding.

NameRequiredDescriptionDefault
node_idYesNode ID of the clip to trim
include_linkedNoAlso apply the edit to the clip's linked audio/video partners, as Premiere does with linked selection (default: true).
new_in_secondsNoNew source in-point in seconds (relative to the clip's source media). Specify exactly one edit point.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
keyframe_policyNoHow to handle effect keyframes beyond the trimmed visible range: reject (default) leaves the timeline unchanged; preserve explicitly keeps them and reports their count; hold_last_value keeps them too but makes every animated numeric parameter hold the value it had at the edge. Trimming into an animation adds a key at the new edge with the value sampled there before the trim; extending past keyframes adds keys at the old and new edge with the old edge's value so the revealed range stays flat. It refuses before mutation if keyframes would be revealed, a value cannot be sampled, or a non-numeric/colour parameter would need a key. Each parameter is read back at the new edge; key writes that do not verify report committed_unverified.
new_out_secondsNoNew source out-point in seconds (relative to the clip's source media). Specify exactly one edit point.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses pre-mutation refusals, linked audio/video synchronization behavior, all-partner prechecks, keyframe policy outcomes, and host Out padding constraints. The mutation is consistent with readOnlyHint=false and destructiveHint=false, and the optional idempotency key adds retry semantics rather than 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the description is appropriately dense for a complex mutation tool, with no obvious filler. It is somewhat long and run-on, but the added clauses mostly earn their place by documenting edge-case behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity, full schema coverage, annotations, and output schema, the description covers the key operational constraints an agent needs: prerequisites, refusals, linked behavior, keyframe handling, alternative tool routing, and padding behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already carries parameter definitions. The description still adds meaningful behavior for include_linked, explaining that linked partners receive the same offset from their own source points, and it clarifies keyframe_policy semantics, though much of the detail also appears in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource: trim exactly one source in/out point and verify the visible timeline edge. It also distinguishes this tool from set_clip_duration, so an agent can route between them without opening both schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names the alternative for setting timeline length or extending a still image (set_clip_duration) and lists several when-not conditions such as unknown duration, retimed clips, overlaps, and keyframe cases. This gives clear selection guidance, not just implied usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

undoUndoA

EXPERIMENTAL (undocumented QE DOM: qe.project.undo / undoStackIndex). Undo the most recent Premiere project action(s) through QE, checked step by step against Premiere's undo-stack position (stackVerified; the timeline itself is not read back). Undo history is project-wide. Only actions Premiere records are undoable: QE edits such as razor, insert, lift and extract report undoSteps (and undoStackIndex) in their results; pass that undoSteps as count to reverse exactly that call. A marker receipt with undoTracked:false recorded no undo step: calling Undo for it would reverse an earlier action. Only CEP tool results carry undoSteps; UXP tools and workflows that send several commands are not counted. Always pass expected_undo_stack_index to check the stack position, but matching position alone does not prove which action is on top. Observed marker boundaries refuse the entire request before any step unless acknowledge_untracked_markers:true explicitly permits prior non-marker actions. The barrier persists through server/helper reloads while the CEP engine remains alive; it cannot account for marker writes before observation, after an engine reset, or through UXP, the manual UI, or other clients. Matching the QE index verifies stack position only.

NameRequiredDescriptionDefault
countNoNumber of times to undo (default: 1)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
expected_undo_stack_indexYesRequired safety guard: the undoStackIndex a tool result reported right after the call you want to reverse. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. The guard compares the position only; matching position cannot prove which action is on top.
acknowledge_untracked_markersNoExplicitly acknowledge that QE steps reverse or restore prior non-marker actions, because marker reversal is not verified. Default false; marker boundaries refuse the entire request before any step.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say non-read-only, non-destructive, non-idempotent; the description carries the real weight: project-wide undo history, only Premiere-recorded actions are undoable, UXP/workflow commands are not counted, the guard verifies position only and cannot prove which action is on top, and the marker barrier's persistence and blind spots are spelled out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and its experimental QE basis, and nearly every sentence adds a distinct constraint. It is a dense single paragraph with some redundancy ("matching position alone does not prove which action is on top" and "Matching the QE index verifies stack position only"), which costs it the top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, high-risk mutation tool with nested guards and an output schema, the description covers the failure modes an agent must plan around: untracked markers, UXP-sent commands, engine resets, and other clients. Little that affects a correct call is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds operational meaning beyond the schema: count should be the undoSteps value from the producing tool result, and expected_undo_stack_index matching position alone does not prove which action is on top. acknowledge_untracked_markers semantics are reinforced but largely restated from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a specific verb and resource ("Undo the most recent Premiere project action(s) through QE") and immediately bounds it to actions Premiere records. It does not name how it differs from close siblings like multiple_undo or redo, so an agent must infer the split from the count parameter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear when-to-use: after a QE edit that returned undoSteps, pass that value as count. It also gives an explicit exclusion ("A marker receipt with undoTracked:false... calling Undo for it would reverse an earlier action") and requires the expected_undo_stack_index guard. It never routes to redo/multiple_undo as alternatives, so a sibling comparison is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unnest_sequenceUnnest SequenceA

Unnest a nested sequence clip, replacing it with the nested sequence's clips at their exact source in/out and timeline positions. Refuses without changing anything when the nest is trimmed, retimed, linked to a partner clip, contains items that also carry the other media type (Premiere's Track.overwriteClip would place that media on the matching track and overwrite the clips there), or when the destination range is occupied or locked. Re-reads every placed clip and reports failure with Undo guidance if any start or source range differs. Nested clips are re-placed from their project items, so effects, keyframes, and transitions inside the nest are not carried over.

NameRequiredDescriptionDefault
node_idYesNode ID of the nested sequence clip on the timeline to unnest
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral detail: refusal without changes, post-operation re-read verification, Undo guidance, and loss of effects/keyframes/transitions inside the nest. However, this conflicts with destructiveHint=false, because replacing the nest with its contents and dropping effects/keyframes/transitions is not an additive update. Per the rubric, a description that contradicts annotations scores 1 and 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation and then layers refusal conditions, verification, and a caveat. It is dense but nearly every sentence carries operationally relevant information; the long parenthetical and multi-clause refusal sentence keep it from being maximally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation tool, the description covers what it does, when it refuses, post-write verification, Undo recovery, and an important data-loss caveat. Output behavior is already covered by the output schema, so no essential call-time context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including node_id and the guard/idempotency fields. The description adds no parameter-specific meaning beyond the schema baseline, which is appropriate for full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Unnest a nested sequence clip,' and immediately states the exact replacement behavior. It is clearly distinct from neighboring timeline operations such as nest_clips or move_clip, so an agent can identify what the tool does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives strong when-not conditions: it refuses when the nest is trimmed, retimed, linked, mixed-media, or when the destination is occupied or locked. It does not name an alternative tool or workflow for those refusal cases, so it stops short of full when/when-not/alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_markerUpdate MarkerA

Update the name, comments or color of the sequence marker at a time and read them back. EXPERIMENTAL (QE DOM): the receipt reports undoStackIndex movement, which does not prove QE can reverse the marker. Every marker attempt protects an engine undo boundary; undoTracked:false means the marker did not observably advance the QE index.

NameRequiredDescriptionDefault
nameNoNew name
colorNoNew color index (0=Green, 1=Red, 2=Purple, 3=Orange, 4=Yellow, 5=White, 6=Blue, 7=Cyan)
commentsNoNew comments
time_secondsYesTime position of the marker to update
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=false and destructiveHint=false, but the description adds meaningful experimental QE DOM context: undoStackIndex movement, undo-boundary protection, and the meaning of undoTracked:false. It does not contradict the annotations and adds useful behavioral caveats beyond the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence, and the experimental undo caveat is relevant rather than filler. The wording is slightly dense and the phrase 'at a time and read them back' is awkward, but the description remains compact and appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a full schema and an output schema, so return values and parameter details need not be repeated in the description. The description supplies the important experimental QE/undo context; its main missing piece is explicit routing guidance against sibling marker tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage, so parameters such as color index values, time_seconds, idempotency_key, and expected_cep_target are already documented in the schema. The description mentions the editable fields but does not add semantics beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: updating the name, comments, or color of the sequence marker. It is clear this modifies an existing marker rather than adding, deleting, or listing one, though it does not explicitly name sibling tools such as add_marker or delete_marker.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: modify fields on an existing sequence marker and read them back. However, there is no explicit when-to-use guidance versus add_marker, delete_marker, list_markers, or add_markers_batch, and no exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_cmx3600_edlValidate Cmx3600 EdlA

Validate a local CMX 3600 EDL's supported event grammar, timecodes, durations, duplicate event IDs, record overlaps, and record gaps before user-assisted Premiere interchange.

NameRequiredDescriptionDefault
pathYesExisting local .edl file
frame_rateNoCMX timecode rate: 24, 25, 29.97, 30, 50, 59.94, or 60 (default: 24)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds real context beyond annotations: the scope of validation and that it operates on a *local* file (i.e. no Premiere connection). But with readOnlyHint=false and an idempotency_key param framed around "edits," the agent is left unsure whether validation mutates anything, writes a receipt, or is purely a read — the description never says, and never states what happens on failure (blocking error vs. findings list).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb and resource first, then the enumerated checks, then the workflow context. No filler and nothing duplicated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers the domain of checks plus the "local" boundary. The remaining gap is outcome semantics — whether validation failures raise an error or return findings — which matters for a gate-style tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the frame_rate enum values and the full idempotency_key contract, so the schema already carries parameter meaning. The description contributes nothing specific to path or frame_rate, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (validate) plus a named resource (local CMX 3600 EDL) and an enumerated list of what is checked: grammar, timecodes, durations, duplicate event IDs, record overlaps and gaps. The verb distinguishes it from siblings inspect_cmx3600_edl and compare_cmx3600_edls, though those siblings are never named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"before user-assisted Premiere interchange" gives a sequencing cue (pre-flight gate), which implies when to reach for it. However, it gives no explicit exclusions and never points the agent to inspect_cmx3600_edl (read/preview an EDL) or compare_cmx3600_edls (diff two EDLs), so the sibling routing 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.

validate_export_presetValidate Export PresetC

Validate that an Adobe Media Encoder .epr preset exists and ask the active Premiere sequence which output extension it produces

NameRequiredDescriptionDefault
preset_pathYesFull path to an Adobe Media Encoder export preset (.epr)
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only describes existence checking and a read-style query, never disclosing any mutation or persistent side effect, yet annotations declare readOnlyHint=false and idempotentHint=false. It also never explains the idempotency_key's role for a tool that reads as inspection-only, nor what happens when no sequence is active.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the primary action and no filler. Slightly awkward phrasing ('ask the active Premiere sequence') but compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shape need not be restated. However, with four parameters including a nested guard object, the description omits prerequisites (an active sequence in Premiere) and failure behavior when the .epr is missing or invalid, leaving gaps for a tool with this much schema surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including a full explanation of idempotency_key and the expected_cep_target guard, so the schema carries the semantics. The description adds only that the preset path is an .epr file and that the active sequence is consulted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb (validate) and resource (an Adobe Media Encoder .epr preset), plus a secondary effect (reports the output extension mapped by the active sequence). It does not name or distinguish itself from close siblings like get_export_file_extension or get_encoder_presets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to call this versus alternatives such as get_export_file_extension, get_encoder_presets, or get_sequence_settings, and no prerequisites or preconditions given. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_mogrt_brand_kitValidate Mogrt Brand KitA
Read-onlyIdempotent

Validate an operator-approved local MOGRT brand kit before using it in a template or batch preview. It never reads font inventories, image pixels, or writes files.

NameRequiredDescriptionDefault
brand_kitYesApproved brand-kit values to validate before recipe use.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathYesAbsolute operator-approved workspace root.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds meaningful behavioral limits beyond those annotations by stating it never reads font inventories or image pixels and never writes files, though it does not describe validation criteria or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences, front-loads the tool purpose, and wastes no space. Every sentence contributes either scope or behavioral boundaries.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex nested schema with 5 parameters, the annotations and schema descriptions carry most of the burden, and an output schema exists for return values. The description supplies the high-level purpose and read/write boundaries, though it does not explain what validation rules are applied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the nested parameters are thoroughly documented in the schema itself. The description adds no parameter-specific meaning, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Validate an ... MOGRT brand kit') and scopes it with 'before using it in a template or batch preview'. This is clear, though it does not explicitly name a sibling alternative such as preview_mogrt_recipe or preview_mogrt_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear when-to-use context: before using the kit in a template or batch preview. It does not state when not to use it or point to an explicit alternative, 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.

validate_platform_publish_packageValidate Platform Publish PackageA
Read-onlyIdempotent

Validate a rendered file plus title, description, hashtags, and content flags against one platform's approximate 2026 publish limits. Returns hard violations, soft warnings, normalized hashtags, and character counts. Local-only; never uploads or changes Premiere.

NameRequiredDescriptionDefault
titleNoPost or video title.
widthYesRendered frame width in pixels.
heightYesRendered frame height in pixels.
hashtagsNoHashtags to publish with the post.
platformYesTarget platform id.
containerNoContainer extension such as mp4 or mov.
frame_rateYesRendered frame rate in frames per second.
audio_codecNoAudio codec name such as AAC.
descriptionNoPost caption or description body.
video_codecNoVideo codec name such as H.264.
has_captionsNoWhether captions are burned in or attached.
content_flagsNoDisclosure flags that trigger platform label reminders.
file_size_bytesNoRendered file size in bytes.
duration_secondsYesRendered file duration in seconds.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive and closed-world, and the description reinforces rather than contradicts them with 'Local-only; never uploads or changes Premiere.' It also adds a real behavioral caveat — the limits are 'approximate 2026' platform limits — which tells the agent results are advisory, but it omits whether violations block or merely advise downstream.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: what is validated, what comes back, and what it will never do. The most decision-relevant clause (platform limits) is front-loaded and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 16 params including a nested CEP guard object and an output schema present, the description covers purpose, output shape summary, and side-effect safety adequately. The only gap is that the expected_cep_target/expected_project_path guards sit oddly against a 'never changes Premiere' tool, and the description does not explain whether they are relevant here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every field is already documented in-schema; the baseline of 3 applies. The description enumerates a few of the 16 inputs (title, description, hashtags, content flags) but adds no format, unit, or interaction detail beyond the schema — notably it says nothing about the platform enum or the CEP guard parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (validate) and resource (a rendered file plus publish metadata: title, description, hashtags, content flags) against a named scope (one platform's approximate 2026 publish limits). That scope cleanly separates it from generic siblings like validate_export_preset or verify_delivery_conformance without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the pre-publish use case but never states when to pick this over neighbors such as plan_platform_delivery_matrix or validate_export_preset, nor any exclusions. Usage is inferable rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_project_for_exportValidate Project For ExportA
Read-onlyIdempotent

Run a non-mutating export preflight for an active or named sequence. It reports blocking offline media, empty timelines, inaccessible preset/output paths, duration, and optional timeline gaps without queuing an export. readyForExport means these preflight checks passed; it does not test exporter initialization, encoder availability, or whether the host can render. Require an actual output file from export_sequence and verify_delivery_file before claiming delivery.

NameRequiredDescriptionDefault
gap_limitNoMaximum per-track gaps to return when per_track_gaps is true (default 200).
check_gapsNoReport gaps on populated tracks as warnings (defaults to true).
gap_offsetNoZero-based offset into the optional per-track gap list (default 0).
output_pathNoOptional intended delivery path; its parent folder is checked.
preset_pathNoOptional .epr preset path to check.
sequence_idNoSequence ID or name. Defaults to the active sequence.
per_track_gapsNoInclude the per-track gap list in a bounded page (default false); composite black/dead-air checks remain available without it.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
require_non_empty_timelineNoTreat an empty sequence as a blocking error (defaults to true).

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantial context beyond them: it enumerates the specific blocking conditions (offline media, empty timelines, inaccessible preset/output paths, duration, gaps) and explicitly bounds the meaning of readyForExport by naming what it does not test. That is exactly the kind of caveat an agent needs before treating a pass as delivery.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the action, then the check list, then the caveat about readyForExport, then the required follow-up chain. No filler and nothing repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with an output schema and a nested CEP guard documented in the schema, the description covers the essential gaps: what is checked, what the result flag means, and what it does not prove. Combined with the existing output schema, an agent has enough to call it and interpret it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameter documentation is already handled by the schema. The description only loosely maps symptoms to parameters (preset/output path checks, optional timeline gaps) without adding syntax or defaults. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run a non-mutating export preflight') and immediately scopes it ('for an active or named sequence'). It distinguishes itself from the export siblings by saying it does not queue an export and by naming export_sequence/verify_delivery_file as separate steps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear sequencing guidance: preflight here, then obtain an actual output file from export_sequence and confirm with verify_delivery_file. It also scopes out evaluator concerns but doesn't explicitly say when to skip this tool (e.g., if the sequence is already exported), so it stops short of a full when/when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_after_effects_connectionVerify After Effects ConnectionC

Read-only check that the dedicated After Effects CEP connector is running. It never reads project names, media, or paths.

NameRequiredDescriptionDefault
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description asserts a 'Read-only check' while the annotations declare readOnlyHint=false, a direct conflict on the same attribute that could mislead an agent about the tool's side effects. The useful disclosure that it does not read project names, media, or paths is noted, but it cannot offset the explicit contradiction. Flagged as an annotation contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core behavior. The second sentence earns its place as a scope boundary, though a sentence on when to call it would have been more valuable than a second exclusion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return shape needn't be explained, but the description omits the two optional guard parameters and any notion of what a failed verification means for downstream AE commands. Adequate for a simple liveness check, incomplete for its role in the AE tool family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (expected_cep_target, expected_project_path) are documented at 100% schema coverage with rich nested descriptions, so the schema carries the semantics. The description adds nothing about them — notably that they act as optional guards checked before AE commands — which leaves the schema to do all the work; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb plus resource: a check that the After Effects CEP connector is running, with the 'After Effects' qualifier separating it from the Premiere-side verify_premiere_connection and the other AE tools (preview/enqueue_after_effects_render). It stops short of naming any sibling explicitly, so differentiation comes from the resource noun alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States what the check is but never says when to call it — e.g., as a precondition before enqueue_after_effects_render or inspect_after_effects_render_templates — nor what to do when it fails. The only guidance is negative scope ('never reads project names, media, or paths'), which is a boundary rather than a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_caption_render_evidenceVerify Caption Render EvidenceA
Read-onlyIdempotent

Check caller-measured caption/title bounds, missing glyphs, line-break and bidirectional-text review against a rendered-artifact SHA256 and target safe zone. Pixel measurement and manual review remain explicit; this tool does not perform OCR or certify unsampled frames.

NameRequiredDescriptionDefault
evidenceYesStrict rendered evidence: artifact_sha256, frame_width/height, safe_margin, cues with text, measured bounds, missing_glyphs, line_breaks_verified, bidi_verified, sampled_ticks and evidence_method.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a read-only, idempotent, non-destructive, non-open-world operation. The description adds meaningful behavioral context by clarifying that the evidence is caller-measured, that pixel measurement and manual review remain explicit, and that the tool does not perform OCR or certify unsampled frames.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the core verification scope, and uses the second sentence to state limitations. It contains no redundant or filler language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex, with nested inputs, but annotations, full schema coverage, and an output schema carry much of the burden. The description supplies the essential conceptual scope and key limitations, though it does not explain the expected evidence-production workflow or when this verification should be run relative to sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the nested evidence fields and expected CEP/project guards are already documented in the schema. The description reinforces the conceptual inputs (rendered-artifact SHA256, target safe zone, caption bounds, glyphs, line-break and bidi review) but adds no syntax or format detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verification action over clearly named evidence: caption/title bounds, missing glyphs, line breaks, bidi review, rendered-artifact SHA256, and target safe zone. It is clear what the tool does, but it does not explicitly differentiate itself from nearby siblings such as check_caption_safe_zone or verify_temporal_render_artifact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by saying it checks caller-measured render evidence and that pixel measurement/manual review remain explicit. It also gives a useful exclusion: no OCR and no certification of unsampled frames. However, it does not say when to prefer this tool over alternatives or describe the workflow that should produce the evidence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_delivery_conformanceVerify Delivery ConformanceA
Read-onlyIdempotent

Verify a local exported file against an explicit delivery contract using ffprobe and optional EBU R128 analysis. Returns pass, fail, or not_evaluated per check; it does not prove Premiere render lineage or visual approval.

NameRequiredDescriptionDefault
widthNoExpected video width in pixels
heightNoExpected video height in pixels
frame_rateNoExpected frames per second; rational ffprobe rates are compared numerically
audio_codecNoExpected audio codec name, such as aac or pcm_s24le
output_pathYesExisting local delivery file
target_lufsNoOptional integrated loudness target from -100 through 0 LUFS
video_codecNoExpected video codec name, such as h264 or prores
audio_channelsNoExpected audio channel count
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoExpected duration in seconds
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
audio_sample_rate_hzNoExpected audio sample rate
frame_rate_toleranceNoAllowed absolute frame-rate difference (default: 0.001)
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
loudness_tolerance_luNoAllowed absolute loudness difference (default: 1 LU)
maximum_true_peak_dbfsNoOptional maximum true peak from -100 through 0 dBFS
allowed_container_namesNoAllowed ffprobe demuxer-family aliases, such as mov or mp4. This cannot distinguish exact subtypes when ffprobe reports a shared alias family.
duration_tolerance_secondsNoAllowed absolute duration difference (default: 0.05)
maximum_video_bitrate_kbpsNoOptional maximum selected-video-stream bitrate in kilobits per second
minimum_video_bitrate_kbpsNoOptional minimum selected-video-stream bitrate in kilobits per second

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral value beyond that: the underlying engines (ffprobe, optional EBU R128 analysis) and the three-valued outcome model (pass, fail, not_evaluated per check), plus explicit limits on what the result proves. It does not mention how optional checks behave or what triggers not_evaluated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and its mechanism, followed by the return semantics and scope caveat. No filler or restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a fully described 20-parameter schema and an output schema, the description only needs to frame intent and limits, which it does. The main residual gap is the meaning of 'not_evaluated' — when a check is skipped because its expected value was not supplied — which an agent must infer from the optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 20 parameters, including tolerances, LUFS ranges and the CEP identity guard. The description adds only indirect meaning by naming ffprobe and EBU R128, which gesture at the media/loudness parameters but add no syntax or constraint detail. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: verify a local exported file against an explicit delivery contract, using ffprobe/EBU R128. It clearly frames the tool as a file-level conformance check rather than a Premiere-side operation, which separates it from most siblings. It stops short of naming the closest alternatives (verify_delivery_file, analyze_video_qc, validate_export_preset, export_and_verify), so the boundary is inferable rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives a scope exclusion ('does not prove Premiere render lineage or visual approval'), which implies when to reach for a different tool. However, no sibling is named and there is no positive guidance on when to choose this over verify_delivery_file or analyze_video_qc. Usage is implied, not directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_delivery_fileVerify Delivery FileB

Verify that an exported delivery is a non-empty regular file and calculate a SHA-256 or SHA-512 checksum; optionally compare expected size and checksum

NameRequiredDescriptionDefault
output_pathYesFull path to the exported delivery file
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_checksumNoOptional expected hexadecimal checksum to compare
checksum_algorithmNoChecksum algorithm (default: sha256)
minimum_size_bytesNoMinimum acceptable file size in bytes (default: 1)
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_size_bytesNoOptional exact expected file size in bytes
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (destructiveHint=false, openWorldHint=false, idempotentHint=false), and the description adds real value by specifying the acceptance criteria — a non-empty regular file — and the checksum algorithms. However, it says nothing about failure behavior (does a size/checksum mismatch return a result or raise an error) and, notably, annotations say readOnlyHint=false while the description reads like a pure analysis operation; the reason it is considered a write (a recorded receipt/operation) is never disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that states the core verification, the algorithm choice, and the optional comparisons with zero filler. Nothing is repeated from the title and nothing could be cut without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema removes any need to explain return values and the schema documents all 8 parameters, but the description omits that the tool can refuse before acting when expected_project_path or expected_cep_target guards fail (and that UXP refuses the CEP-only guard). For a tool whose behavior materially changes with those parameters, that omission leaves the description just adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies and the schema already explains idempotency_key, expected_cep_target and expected_project_path in detail. The description adds only the intended meaning of the size/checksum comparison pair, and stays silent on the heavyweight guard parameters, which is acceptable but not additive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (verify an exported delivery file, compute a SHA-256/SHA-512 checksum) plus the optional comparisons it performs, so an agent knows exactly what happens. It does not explicitly distinguish itself from close siblings such as verify_delivery_conformance or export_and_verify, which is the only thing keeping it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus the adjacent verification tools (verify_delivery_conformance, validate_project_for_export, verify_temporal_render_artifact) and no prerequisites or exclusions. Usage is only implied by the word 'exported delivery' in the name and phrasing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_fcpxml_media_referencesVerify Fcpxml Media ReferencesA

Verify the file:// media references of an FCPXML or FCP7 XML (xmeml) document, only inside caller-approved existing roots. References outside those roots are never statted or exposed as local paths.

NameRequiredDescriptionDefault
pathYesExisting local .fcpxml or .xml file
allowed_rootsYesOne to sixteen existing absolute roots that may be inspected
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds a real behavioural guarantee: references outside the approved roots are never statted or exposed as local paths, which tells the agent about filesystem access and privacy scoping. It does not explain why readOnlyHint is false for what reads like a pure verification pass, nor mention that it is a local-only tool requiring no Premiere host.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both load-bearing: the first states what is verified and the bounding constraint, the second states the negative guarantee. The purpose is front-loaded with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a local, read-only-looking verification tool with an output schema and fully documented parameters, the description covers purpose and the key safety boundary. It leaves open whether the tool touches Premiere at all and what a 'verified' result means at a high level, though the output schema can carry the return detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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; every parameter, including the nested expected_cep_target object, is already documented in the schema. The description reinforces the meaning of allowed_roots (approved existing roots bounding what is statted) but adds nothing about path, idempotency_key, or the CEP guard parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (verify) and resource (file:// media references of an FCPXML/FCP7 xmeml document), so the agent knows exactly what is checked. It doesn't name any sibling (e.g. inspect_fcpxml_interchange, check_offline_media) to disambiguate which of the many interchange/offline-media tools to pick, which keeps it below a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"only inside caller-approved existing roots" hints at the preconditions (paths must exist and be explicitly approved), and the second sentence states what will not happen. But there is no explicit when-to-use statement and no routing to alternatives such as check_offline_media (Premiere project media) or inspect_fcpxml_interchange (structure only). Usage 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.

verify_mogrt_artifactVerify Mogrt ArtifactA
Read-onlyIdempotent

Verify that a workspace-contained .mogrt artifact exists locally and has a ZIP header. This does not prove controls, import compatibility, playback, or visual correctness.

NameRequiredDescriptionDefault
mogrt_pathYesAbsolute .mogrt artifact path inside approved_workspace_path.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
approved_workspace_pathYesAbsolute operator-approved workspace root containing mogrt_path.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false, and idempotentHint, so the safety profile is covered. The description adds real value by disclosing the check's limits — that a ZIP header is not proof of importability or playback — which prevents the agent from over-trusting the result. What it doesn't cover is the idempotency_key / expected_cep_target guard behavior, though the schema explains those.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the positive claim and followed immediately by the caveat. Every clause carries information; nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, complete annotations, and fully documented parameters, the description only needs to establish purpose and limits, and it does both. A minor gap is that it doesn't situate the check in a workflow sequence (e.g. run before import_mogrt), leaving the agent to infer ordering.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the parameter descriptions are unusually detailed, including the workspace containment rule and idempotency key lifecycle. The description adds nothing about parameters, so the baseline 3 is appropriate — the schema carries the weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (verify), a specific resource (.mogrt artifact), and the exact evidence criteria: local existence plus ZIP header. That precision distinguishes it from siblings like import_mogrt or preview_mogrt_recipe, which do more than a static file check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence explicitly bounds what a passing result means by listing what it does not prove (controls, import compatibility, playback, visual correctness), which steers the agent to heavier siblings for those questions. It stops short of naming the specific alternative tool to use for those deeper checks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_premiere_connectionVerify Premiere ConnectionA
Read-onlyIdempotent

Run a safe, read-only first-run check. It proves that this MCP server, the selected Premiere bridge, an active project, and an active sequence are connected without returning project names, paths, or media details.

NameRequiredDescriptionDefault
backendNoBridge to check. Defaults to CEP. This check never falls back to a different bridge.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered structurally. The description still adds meaningful context: what the check actually proves (the full server-to-sequence chain) and the notable privacy contract that no names, paths, or media details are returned. It omits failure/refusal behavior, which the schema's guard parameters imply but the description never mentions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the safe/read-only framing and followed by the precise scope of the proof. Nothing is redundant with the title and no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the annotations carry the safety profile. What's missing is any hint that the optional guard parameters change this from a passive probe into an assertion that can refuse; for a tool with nested object guards, that behavioral shift is worth a sentence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains backend, the CEP target guard, and the expected project path in depth. The description says nothing about any of the three parameters and does not warn that supplying the optional guards converts the check into a strict refusal-on-mismatch verification. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (a first-run connectivity check) and enumerates exactly what is proven: MCP server, selected Premiere bridge, active project, active sequence. That four-link chain is far more specific than the name alone, and the privacy clause hints at differentiation from richer inspection tools like get_premiere_state, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'First-run check' implies the moment of use, but the description never says when not to use it, nor does it route the agent away from lookalikes such as ping, get_bridge_telemetry, get_capabilities, or verify_after_effects_connection. In a sibling set this large, the missing selection rules leave real ambiguity about which probe to run.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_temporal_render_artifactVerify Temporal Render ArtifactA
Read-onlyIdempotent

Validate actual short exported video at 2–32 times with decoded RGB tolerances and optional decoded-audio RMS windows. Rejects stills and mismatched samples; records fixture/artifact hashes and explicit declared host provenance. This sampled harness does not prove all frames, Undo/reopen, playback, glyphs or destination compatibility.

NameRequiredDescriptionDefault
hostNoOptional caller-declared licensed-host provenance; artifact analysis cannot authenticate these values.
pathYesAbsolute existing caller-selected video artifact (maximum 1 GiB, expected duration at most 60 seconds).
samplesYesExpected temporal image checks; choose times around transitions and interpolation, with compression-aware tolerances.
fixture_idYesOpaque fixture ID.
audio_samplesNoOptional actual decoded-audio energy checks; analysis downmixes to mono 48kHz and cannot prove multichannel routing.
fixture_sha256YesLowercase SHA-256 of generated fixture/input definition.
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsYesExpected actual video duration.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.
duration_tolerance_secondsNoAllowed duration deviation, default 0.05 seconds.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/no-destroy annotations, it discloses rejection behavior, that fixture/artifact hashes and declared host provenance are recorded (and that host values are unauthenticated structural provenance), and an explicit sampling-coverage disclaimer. That is unusually rich behavioral context for a read-only verification tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the action and oracle type, then validation rejects, then scope limits. Every sentence earns its place; only the compressed phrase "at 2–32 times" is slightly ambiguous versus "2–32 sample points".

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and the 11-parameter schema is fully documented. The description still covers the essential gaps: input preconditions, sampled nature, provenance recording, and what the result does not certify.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter meaning: the 2–32 sample-time range (mapping to samples minItems/maxItems) and the optional audio-window mode, which the schema only exposes field-by-field. "Short" also justifies the 60s/1 GiB bounds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource: "Validate actual short exported video" via decoded RGB tolerances and optional audio RMS windows. The sampled-oracle framing plus "Rejects stills" clearly separates it from stills/scope/delivery-conformance siblings without naming them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Rejects stills and mismatched samples" and the closing "does not prove all frames, Undo/reopen, playback, glyphs or destination compatibility" give concrete when-not boundaries that steer the agent away from using this as a full delivery proof. No sibling alternative is named, so it stops 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.

verify_timeline_postconditionsVerify Timeline PostconditionsA
Read-onlyIdempotent

Compare exact canonical snapshots for source continuity, linked identities, preserved neighbors and unexpected pieces. Reports bounded structural discrepancies. Does not certify audible A/V synchronization or rendering.

NameRequiredDescriptionDefault
actualYesVersion 1 canonical snapshot from inspect_timeline_snapshot or an equivalent verified adapter; exact tick strings, host identities, completeness, tracks/clips and SHA256 revision are validated before use.
expectedYesVersion 1 canonical snapshot from inspect_timeline_snapshot or an equivalent verified adapter; exact tick strings, host identities, completeness, tracks/clips and SHA256 revision are validated before use.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds real behavioral context the annotations do not: it enumerates what dimensions are compared and characterizes output as 'bounded structural discrepancies', implying it reports rather than throws on mismatch, along with a scope disclaimer about what it will not certify.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each doing distinct work: what is compared, what is returned, and what is out of scope. The exclusion is placed last where limits belong, and there is no boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and fully documented parameters, the description does not need to explain return values, and it correctly concentrates on scope. It is only incomplete in not tying itself to inspect_timeline_snapshot (the snapshot producer) or diff_sequence_snapshots, which for a nested, guard-heavy verification tool is a meaningful missing link.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains expected/actual provenance, the CEP identity guard, and expected_project_path. The description only reinforces that comparison uses 'exact' canonical snapshots and hints at compared dimensions; it adds no syntax or format detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: comparing exact canonical snapshots for four enumerated properties (source continuity, linked identities, preserved neighbors, unexpected pieces), plus an explicit negative scope ('Does not certify audible A/V synchronization or rendering'). It never names the sibling it most overlaps with, diff_sequence_snapshots, nor the producing tool inspect_timeline_snapshot, so an agent cannot fully separate it from siblings on the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The exclusion sentence gives a usable when-not boundary (no A/V sync or rendering certification), which is more than most tools offer. But there is no positive trigger ('use after X edit, before Y export') and no routing to diff_sequence_snapshots or inspect_timeline_snapshot, so the when-to-use signal is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_workflow_jobWait Workflow JobA
Read-onlyIdempotent

Wait up to 60 seconds for an exact native or local job. An uncorrelated native terminal event stops observation with requiresReconciliation, never verified completion. Optional MCP progress reports observed receipt progress. Stopping the wait never cancels accepted native work.

NameRequiredDescriptionDefault
job_idYesExact tracked job ID; missing receipts never imply completion.
originYesReceipt owner backend.
timeout_msNoBounded observation wait, default 10000 ms.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescription
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations: it discloses the requiresReconciliation outcome for uncorrelated native terminal events, that such an event never constitutes verified completion, and that stopping the wait does not cancel accepted native work. These are non-obvious behavioral traits an agent cannot get 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences with the duration bound front-loaded and no filler. Some terms ('uncorrelated native terminal event', 'requiresReconciliation') are dense jargon that would benefit from one clarifying clause, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values needn't be explained, and the description covers the wait bounds and failure semantics well. It leaves the two optional CEP guard objects unexplained at a narrative level and does not define how 'native' vs 'local' origin jobs differ in outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents job_id, origin, timeout_ms, and both guard objects. The description adds only the 60-second cap ('native or local' loosely mapping to the origin enum) and does not clarify how expected_cep_target/expected_project_path affect the wait, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Wait up to 60 seconds for an exact native or local job'), so the agent knows this is a bounded blocking wait rather than an inspection call. It does not name the obvious non-blocking sibling (inspect_workflow_job) or cancel_workflow_job, so differentiation must be inferred from the verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied — an agent can infer 'use this to block until a job reaches a terminal state' but the description never states when to choose this over inspect_workflow_job or cancel_workflow_job. The 60-second ceiling is the only explicit operating constraint.

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.

  1. 439 tool updatesv1.25.0
    • Changedacknowledge_operation_recovery2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_adjustment_layer2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_audio_keyframes2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_custom_metadata_field2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_keyframe2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_marker2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_marker_to_project_item2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_markers_batch2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_text_overlay2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_title2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_to_render_queue2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_to_timeline2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_to_timeline_batch2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_track2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_tracks2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_transition2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadd_transition_to_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedadjust_audio_levels2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedanalyze_dialogue_edit_candidates1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedanalyze_loudness2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedanalyze_video_interlacing2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedanalyze_video_qc2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_after_effects_render_handoff2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_audio_effect2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_edit_plan2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_effect2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_extended_edit_plan2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_lut2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_mogrt_premiere_handoff2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_scene_review_workflow2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_spot_workflow_plan2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedapply_stacked_camera_edit2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedattach_custom_property2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Addedaudit_project_structure
    • Changedaudit_timeline_health1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedauto_reframe_sequence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedbatch_add_transitions2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedbatch_apply_effect2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedbatch_enable_disable2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedbatch_rename_clips2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedbind_media_provenance1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedbuild_caption_artifact2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedbuild_edit_review_evidence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedbuild_project_handoff_manifest2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcan_execute1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcancel_workflow_job2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcapture_frame2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcheck_caption_safe_zone1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcheck_offline_media1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedclear_item_in_out2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedclear_sequence_in_out2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedclose_all_source_clips2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedclose_project2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedclose_sequence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedclose_source_monitor2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcolor_correct2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcompare_cmx3600_edls2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcompute_mask_fit_motion1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedconsolidate_and_transfer2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedconsolidate_duplicates2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedconvert_timeline_time1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcopy_effect_values2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcopy_effects_between_clips2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_bars_and_tone2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_bin2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_caption_track2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_context_edit_plan1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_editorial_context_pack1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_editorial_plan1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_mogrt_batch2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_mogrt_recipe2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_project2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_project_backup2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_sequence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_sequence_checkpoint2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_sequence_from_clips2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_sequence_from_preset2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_smart_bin2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Addedcreate_source_freeze_frame
    • Changedcreate_subclip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcreate_subsequence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedcrop_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddelete_bin2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddelete_marker2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddelete_multiple_project_items2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddelete_preview_files2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddelete_project_item2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddelete_sequence3 fields changed
      • addedInput schema / properties / confirm_remove_from_sequences
        Added value: +{
        +  "description": "Delete even when this sequence is nested on another timeline, which also removes those nested clips (default: false).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddelete_track2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddeselect_all_clips2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddetach_proxy2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddetect_active_picture_bounds2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddetect_audio_transients2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddetect_beats2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddetect_motion_peaks2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddetect_repeated_takes1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddetect_scene_edits2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddetect_silence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddetect_source_scene_changes2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changeddiff_sequence_snapshots1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedduplicate_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedduplicate_sequence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedenable_disable_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedencode_file2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedencode_project_item2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedenqueue_after_effects_render2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_aaf2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_and_verify2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_as_fcp_xml2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_as_project2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_facility_metadata_table2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_frame2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_omf2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_review_markers2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_sequence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_sequence_clip_review_frames2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_sequence_edl2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Addedexport_sequence_job_start
    • Changedexport_sequence_marker_review_frames2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedexport_sequence_review_frames2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedextract_selection2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedfind_item_usages1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedfind_items_by_media_path1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedfind_project_item_by_name1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedfreeze_frame2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedgenerate_media_contact_sheet2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_active_sequence1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_advanced_feature_support1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_all_project_paths1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_av_feature_support1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_bin_contents1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_bridge_telemetry2 fields changed
      • addedInput schema / properties / expected_command_ms
        Added value: +{
        +  "description": "How long the in-flight command is expected to take, in ms (default: the bridge timeout, 30000). A command still running past this while the panel is alive is reported as likely_blocked_by_dialog. Raise it for long exports.",
        +  "maximum": 3600000,
        +  "minimum": 1000,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_capabilities1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_caption_style_guidance1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_clip_adjustment_layer1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_clip_at_playhead1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_clip_at_position1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_clip_links1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_clip_markers1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_clip_properties1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_clip_speed1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_clip_volume1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_color_label1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_color_space1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_duplicate_media1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_effect_properties1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_encoder_presets1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_export_file_extension2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Addedget_export_job_status
    • Changedget_footage_interpretation1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_full_clip_info1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_full_project_overview1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_full_sequence_info1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_graphics_white_luminance1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_insertion_bin1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_item_info1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_keyframes1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_last_operations1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_linked_items1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_metadata1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_mogrt_component1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_next_edit_point1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_offline_media1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_operation_performance1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_playhead_position1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_premiere_state1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_project_info1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_project_item_info1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_project_panel_metadata1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_project_scratch_disks1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_qe_clip_info1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_render_queue_status1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_selected_clips1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_sequence_count1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_sequence_in_out_points1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_sequence_markers_by_type1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_sequence_settings1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_sequence_structure1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_source_monitor_info1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_source_monitor_position1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_target_tracks1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_timeline_gaps1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_timeline_summary1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_total_clip_count1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_track_info1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_unused_media1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_used_media_report1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_value_at_time1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_version_info1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_work_area1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_workspaces1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedget_xmp_metadata1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedhas_proxy1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedimport_ae_comps2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedimport_edl2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedimport_fcp_xml2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedimport_folder2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedimport_image_sequence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedimport_media2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedimport_mogrt2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedimport_mogrt_from_library2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedimport_sequences2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinsert_from_source2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_after_effects_render_templates1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_after_effects_template_source1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_cmx3600_edl2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_dom_object1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_edit_readiness1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_fcpxml_interchange2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_film_editorial_workflow1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_interchange_artifact2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_interchange_loss_report2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_media_streams2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_mogrt_library2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_operation_recovery1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_otio_interchange2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_project_item_av_metadata1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_project_recovery1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_rendered_video_scopes2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_sequence_av_settings1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_sequence_review_report1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_stabilizer_status1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_timeline_snapshot1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_workflow_checkpoint2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinspect_workflow_job1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedinvert_selection2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedis_work_area_enabled1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlift_selection2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlink_selection2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_available_audio_effects1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_available_audio_transitions1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_available_effects1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_available_transitions1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_clip_effects1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_markers1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_project_items1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_sequence_checkpoints1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_sequence_tracks1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_sequences1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlist_stock_titles1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedlock_track2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmanage_media_watch2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmanage_project_context2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmanage_proxies2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmap_keyframe_time_domain1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmap_source_ranges_to_timeline1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmap_word_timeline_occurrences1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmatch_frame1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmove_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmove_clip_to_track2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmove_item_to_bin2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmove_items_to_bin2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmove_playhead_to_edit2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmultiple_undo2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedmute_track2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changednavigate_playhead2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changednest_clips2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changednormalize_loudness_file2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedopen_in_source2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedopen_project2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedoverwrite_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedoverwrite_from_source2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpaste_clip_attributes2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedping1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_active_speaker_reframe1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_audio_post_turnover1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_beat_montage1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_chapter_markers1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_client_notes_checklist1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_cross_app_workflow1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_emphasis_zoom_keyframes1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_filler_word_removal1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_media_synchronization1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_multicam_angle_switches1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_music_remix1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_pause_tightening1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_platform_delivery_matrix1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_reaction_captions1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_scene_segments1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_short_export_folder1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_short_subscribe_cta1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_shot_match2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_silence_review_markers1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_speaker_checkerboard1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplan_word_mute_ranges1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplay_source_monitor2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedplay_timeline2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpredict_timeline_edit1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedprepare_transcript_workflow2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_after_effects_render2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_after_effects_render_handoff2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_brand_spot1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_edit_plan1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_editorial_plan1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_extended_edit_plan1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_facility_metadata_intake2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_mogrt_batch2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_mogrt_library_publish2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_mogrt_premiere_handoff2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_mogrt_recipe2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_motion_graphics_demo1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_otio_snapshot_export1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_product_spot1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_project_intake1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_scene_review_workflow2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_stacked_camera_edit1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_watched_media_import2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpreview_workflow_recipe2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedpublish_mogrt_to_library2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedrank_short_form_candidates1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedrazor_all_tracks2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedread_sequence_captions1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedread_video_scopes2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedredo2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedrefresh_media2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedrelink_media2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedremove_all_effects2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedremove_effect2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedremove_effect_by_name2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedremove_from_timeline2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedremove_keyframe2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedremove_keyframe_range2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedremove_selected_clips2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedrename_bin2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedrename_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedrename_project_item2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedrename_track2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedreplace_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedreplace_clip_media2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Addedretime_caption_file
    • Changedreverse_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedreview_broll_placements1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedreview_dialogue_candidates1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedreview_quote_paper_edit1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedreview_sync_evidence1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedreview_text_changes1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedripple_delete2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedripple_remove_timeline_ranges2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedroll_edit2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedsave_project2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedsave_project_as2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedsave_workflow_checkpoint2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedscene_edit_detection2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedsearch_project_context1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedsearch_project_items1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedsearch_workflow_recipes2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedselect_all_clips2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedselect_clips_by_color2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedselect_clips_by_name2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedselect_clips_by_pattern2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedselect_clips_in_range2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedselect_disabled_clips2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedselect_item2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_active_sequence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_all_tracks_targeted2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_anti_alias_quality2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_blend_mode2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_anchor_point2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_duration2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_opacity2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_pan2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_position2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_properties2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_properties_batch2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_rotation2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_scale2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_selection2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_speed_qe2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_start_time2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clip_volume2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_clips_volume2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_color_label2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_color_value2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_effect_property2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_footage_interpretation2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_frame_blend2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_graphics_white_luminance2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_item_in_out2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_keyframe_interpolation2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_metadata2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_offline2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_override_frame_rate2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_override_pixel_aspect_ratio2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_playhead_position2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_poster_frame2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_project_item_audio_channel_mapping2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_project_panel_metadata2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_project_scratch_disk2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_scale_to_frame_size2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_scale_width_height2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_scratch_disk_path2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_sequence_audio_settings2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_sequence_display_format2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_sequence_field_type2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_sequence_frame_rate2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_sequence_in_out_points2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_sequence_pixel_aspect_ratio2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_sequence_resolution2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_sequence_settings2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_source_in_out2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_start_time2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_target_track2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_time_interpolation2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_transcode_on_ingest2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_uniform_scale2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_work_area2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_workspace2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_xmp_metadata2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedset_zero_point2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedsetup_ducking2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedslide_edit2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedslip_edit2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedspeed_change2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedsplit_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedstabilize_clip2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedstart_batch_encode2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedstart_local_analysis_job2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedstop_playback2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedtoggle_track_visibility2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedtrim_clip4 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • changedInput schema / properties / keyframe_policy / description
        Previous value: -"How to handle effect keyframes beyond the trimmed visible range: reject (default) leaves the timeline unchanged; preserve explicitly keeps them and reports their count."New value: +"How to handle effect keyframes beyond the trimmed visible range: reject (default) leaves the timeline unchanged; preserve explicitly keeps them and reports their count; hold_last_value keeps them too but makes every animated numeric parameter hold the value it had at the edge. Trimming into an animation adds a key at the new edge with the value sampled there before the trim; extending past keyframes adds keys at the old and new edge with the old edge's value so the revealed range stays flat. It refuses before mutation if keyframes would be revealed, a value cannot be sampled, or a non-numeric/colour parameter would need a key. Each parameter is read back at the new edge; key writes that do not verify report committed_unverified."
      • changedInput schema / properties / keyframe_policy / enum
        Previous value: -[
        -  "reject",
        -  "preserve"
        -]New value: +[
        +  "reject",
        +  "preserve",
        +  "hold_last_value"
        +]
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedundo2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedunlink_selection2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedunnest_sequence2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedupdate_marker2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedvalidate_cmx3600_edl2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedvalidate_export_preset2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedvalidate_mogrt_brand_kit2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedvalidate_platform_publish_package1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedvalidate_project_for_export1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedverify_after_effects_connection1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedverify_caption_render_evidence1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedverify_delivery_conformance2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedverify_delivery_file2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedverify_fcpxml_media_references2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedverify_mogrt_artifact2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedverify_premiere_connection1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedverify_temporal_render_artifact2 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Optional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process or one HTTP session) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "pattern": "^[A-Za-z0-9._:-]+$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedverify_timeline_postconditions1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
    • Changedwait_workflow_job1 field changed
      • addedOutput schema / properties / idempotency
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
        +  "type": "object"
        +}
  2. 9 tool updatesv1.24.3
    • Changeddelete_bin2 fields changed
      • addedInput schema / properties / allow_offline
        Added value: +{
        +  "description": "Also delete a bin that holds offline (missing-media) items. Premiere can open a modal while deleting missing media, which blocks every later bridge command until it is closed (default: false).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / confirm_remove_from_sequences
        Added value: +{
        +  "description": "Delete even when something inside the bin is used in a sequence, which also removes those timeline clips (default: false).",
        +  "type": "boolean"
        +}
    • Changeddelete_multiple_project_items1 field changed
      • addedInput schema / properties / allow_offline
        Added value: +{
        +  "description": "Also delete offline (missing-media) items. Premiere can open a modal while deleting missing media, and the modal blocks every later bridge command until it is closed in Premiere, so these are refused by default (default: false).",
        +  "type": "boolean"
        +}
    • Changeddelete_preview_files1 field changed
      • addedInput schema / properties / media_type / enum
        Added value: +[
        +  "video",
        +  "audio",
        +  "all"
        +]
    • Changeddelete_project_item1 field changed
      • addedInput schema / properties / allow_offline
        Added value: +{
        +  "description": "Also delete offline (missing-media) items. Premiere can open a modal while deleting missing media, and the modal blocks every later bridge command until it is closed in Premiere, so these are refused by default (default: false).",
        +  "type": "boolean"
        +}
    • Changedexport_sequence_edl1 field changed
      • addedInput schema / properties / return_content
        Added value: +{
        +  "description": "Include the per-event list and reel list in the result (default true). With output_path, false returns only the path, event count, record duration, checksum and validation, which keeps long EDLs out of the conversation.",
        +  "type": "boolean"
        +}
    • Addedfind_item_usages
    • Addedget_last_operations
    • Changednormalize_loudness_file1 field changed
      • addedInput schema / properties / max_attempts
        Added value: +{
        +  "description": "Renders allowed when the remeasured output misses the target or true-peak ceiling, for example after AAC encoding raises the true peak (default: 2; 1 disables retries)",
        +  "maximum": 4,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedoverwrite_clip4 fields changed
      • changedInput schema / properties / audio_track_index / description
        Previous value: -"Audio track index (0-based, default: 0)"New value: +"Audio track index (0-based, default: 0), or \"auto_empty\" to use the lowest audio track with no clip in the placement range (for example when overwriting a nested sequence above existing music). auto_empty refuses, changing nothing, when every audio track is occupied there."
      • addedInput schema / properties / audio_track_index / minimum
        Added value: +0
      • addedInput schema / properties / audio_track_index / pattern
        Added value: +"^auto_empty$"
      • changedInput schema / properties / audio_track_index / type
        Previous value: -"number"New value: +[
        +  "integer",
        +  "string"
        +]
  3. 3 tool updatesv1.24.1
    • Changedfreeze_frame1 field changed
      • changedInput schema / properties / duration_seconds / description
        Previous value: -"Duration of the freeze frame on the timeline (default: 2)"New value: +"Length of the imported still in seconds, written as its Out mark and read back (default: 2, at most 3600)."
    • Changedripple_remove_timeline_ranges1 field changed
      • changedInput schema / properties / sequence_id / description
        Previous value: -"Sequence name or ID; defaults to active sequence."New value: +"Sequence name or ID; defaults to the active sequence. It must be the active sequence, because the edit runs through QE; another sequence is refused without changes."
    • Changedsave_workflow_checkpoint1 field changed
      • changedInput schema / properties / checkpoint / description
        Previous value: -"Strict version1 checkpoint with project_id, sequence_id, snapshot_revision, backup_reference/null, sequence_checkpoint_reference/null, operations[{operation_id,tool,state,receipt_digest/null}]."New value: +"Strict checkpoint: schema_version 1, project_id, sequence_id, snapshot_revision, backup_reference/null, sequence_checkpoint_reference/null, operations[{operation_id,tool,state,receipt_digest/null}]. No other fields."
  4. 432 tool updatesv1.24.0
    • Addedacknowledge_operation_recovery
    • Changedadd_adjustment_layer3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_audio_keyframes4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / keyframes / items / additionalProperties
        Added value: +false
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_custom_metadata_field3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_keyframe4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / property_index
        Added value: +{
        +  "description": "Optional property index from get_effect_properties; required when property_name is duplicated.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_marker3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_marker_to_project_item3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_markers_batch3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_text_overlay3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_title3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_to_render_queue3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_to_timeline3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_to_timeline_batch3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_track3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_tracks3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_transition4 fields changed
      • changedInput schema / properties / cut_point_seconds / description
        Previous value: -"Time position in seconds of the cut point where the transition should be placed"New value: +"Time position in seconds of the cut point where the transition should be placed. Snapped to the sequence frame grid and matched to the nearest clip edge within half a frame."
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadd_transition_to_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedadjust_audio_levels3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedanalyze_dialogue_edit_candidates3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedanalyze_loudness3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedanalyze_video_interlacing5 fields changed
      • addedInput schema / properties / analysis_revision
        Added value: +{
        +  "description": "Optional project/timeline revision to isolate otherwise-identical analysis inputs.",
        +  "maxLength": 128,
        +  "type": "string"
        +}
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / use_cache
        Added value: +{
        +  "description": "Opt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedanalyze_video_qc3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedapply_after_effects_render_handoff3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedapply_audio_effect3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedapply_edit_plan5 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / plan / additionalProperties
        Added value: +false
      • addedInput schema / properties / plan / properties / operations / items / additionalProperties
        Added value: +false
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedapply_effect3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedapply_extended_edit_plan
    • Changedapply_lut3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedapply_mogrt_premiere_handoff3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedapply_scene_review_workflow
    • Changedapply_spot_workflow_plan3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedapply_stacked_camera_edit
    • Changedattach_custom_property3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedaudit_timeline_health10 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / snapshot / additionalProperties
        Added value: +false
      • addedInput schema / properties / snapshot / properties / audioTracks / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / snapshot / properties / audioTracks / items / properties / clips / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / snapshot / properties / tracks / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / snapshot / properties / tracks / items / properties / clips / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / snapshot / properties / videoTracks / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / snapshot / properties / videoTracks / items / properties / clips / items / additionalProperties
        Added value: +false
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedauto_reframe_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedbatch_add_transitions3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedbatch_apply_effect3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedbatch_enable_disable3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedbatch_rename_clips3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedbind_media_provenance
    • Changedbuild_caption_artifact3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedbuild_edit_review_evidence
    • Addedbuild_project_handoff_manifest
    • Addedcan_execute
    • Addedcancel_workflow_job
    • Changedcapture_frame3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcheck_caption_safe_zone3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcheck_offline_media3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedclear_item_in_out3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedclear_sequence_in_out3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedclose_all_source_clips3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedclose_project3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedclose_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedclose_source_monitor3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcolor_correct3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcompare_cmx3600_edls3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcompute_mask_fit_motion3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedconsolidate_and_transfer3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedconsolidate_duplicates3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedconvert_timeline_time
    • Changedcopy_effect_values3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcopy_effects_between_clips3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_bars_and_tone3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_bin3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_caption_track4 fields changed
      • addedInput schema / properties / caption_format / enum
        Added value: +[
        +  "608",
        +  "708",
        +  "subtitle",
        +  "teletext",
        +  "ebu",
        +  "op42",
        +  "op47"
        +]
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_context_edit_plan3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_editorial_context_pack3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_editorial_plan3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_mogrt_batch3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_mogrt_recipe3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_project3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_project_backup3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_sequence_checkpoint3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_sequence_from_clips3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_sequence_from_preset3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_smart_bin3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_subclip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcreate_subsequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedcrop_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddelete_bin3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddelete_marker3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddelete_multiple_project_items3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddelete_preview_files3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddelete_project_item3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddelete_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddelete_track3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddeselect_all_clips3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddetach_proxy3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddetect_active_picture_bounds5 fields changed
      • addedInput schema / properties / analysis_revision
        Added value: +{
        +  "description": "Optional project/timeline revision to isolate otherwise-identical analysis inputs.",
        +  "maxLength": 128,
        +  "type": "string"
        +}
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / use_cache
        Added value: +{
        +  "description": "Opt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddetect_audio_transients5 fields changed
      • addedInput schema / properties / analysis_revision
        Added value: +{
        +  "description": "Optional project/timeline revision to isolate otherwise-identical analysis inputs.",
        +  "maxLength": 128,
        +  "type": "string"
        +}
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / use_cache
        Added value: +{
        +  "description": "Opt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddetect_beats3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddetect_motion_peaks5 fields changed
      • addedInput schema / properties / analysis_revision
        Added value: +{
        +  "description": "Optional project/timeline revision to isolate otherwise-identical analysis inputs.",
        +  "maxLength": 128,
        +  "type": "string"
        +}
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / use_cache
        Added value: +{
        +  "description": "Opt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddetect_repeated_takes3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddetect_scene_edits3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddetect_silence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddetect_source_scene_changes3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changeddiff_sequence_snapshots17 fields changed
      • addedInput schema / properties / after / additionalProperties
        Added value: +false
      • addedInput schema / properties / after / properties / audioTracks / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / after / properties / audioTracks / items / properties / clips / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / after / properties / tracks / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / after / properties / tracks / items / properties / clips / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / after / properties / videoTracks / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / after / properties / videoTracks / items / properties / clips / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / before / additionalProperties
        Added value: +false
      • addedInput schema / properties / before / properties / audioTracks / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / before / properties / audioTracks / items / properties / clips / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / before / properties / tracks / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / before / properties / tracks / items / properties / clips / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / before / properties / videoTracks / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / before / properties / videoTracks / items / properties / clips / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedduplicate_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedduplicate_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedenable_disable_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedencode_file3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedencode_project_item3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedenqueue_after_effects_render3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedexport_aaf3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedexport_and_verify
    • Changedexport_as_fcp_xml4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / timeout_minutes
        Added value: +{
        +  "description": "Maximum wait for the host (default: 60 minutes for long sequences).",
        +  "maximum": 240,
        +  "minimum": 1,
        +  "type": "number"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedexport_as_project3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedexport_facility_metadata_table
    • Changedexport_frame3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedexport_omf4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / timeout_minutes
        Added value: +{
        +  "description": "Maximum wait for Premiere to write the OMF (default: 60 minutes for long sequences).",
        +  "maximum": 240,
        +  "minimum": 1,
        +  "type": "number"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedexport_review_markers
    • Changedexport_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedexport_sequence_clip_review_frames3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedexport_sequence_edl4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / timeout_minutes
        Added value: +{
        +  "description": "Maximum wait for Premiere timeline readback (default: 30 minutes).",
        +  "maximum": 240,
        +  "minimum": 1,
        +  "type": "number"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedexport_sequence_marker_review_frames3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedexport_sequence_review_frames3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedextract_selection3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedfind_items_by_media_path3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedfind_project_item_by_name3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedfreeze_frame3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedgenerate_media_contact_sheet3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_active_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_advanced_feature_support3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_all_project_paths3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_av_feature_support3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_bin_contents3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_bridge_telemetry3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_capabilities3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_caption_style_guidance5 fields changed
      • addedInput schema / properties / custom_style
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Optional caption look to translate into concrete Premiere UI steps. Every field is optional; at least one is required. Values are documentation only and are never applied.",
        +  "properties": {
        +    "fill_color": {
        +      "description": "Text fill colour as #RRGGBB.",
        +      "pattern": "^#[0-9A-Fa-f]{6}$",
        +      "type": "string"
        +    },
        +    "font_family": {
        +      "description": "Font family name as shown in Premiere, e.g. Source Han Sans TW.",
        +      "maxLength": 128,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "font_size_px": {
        +      "description": "Font size in Premiere's caption units (pixels).",
        +      "maximum": 400,
        +      "minimum": 8,
        +      "type": "integer"
        +    },
        +    "font_weight": {
        +      "description": "Font weight or style name, e.g. Heavy or Bold.",
        +      "maxLength": 64,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "offset_x_px": {
        +      "description": "Horizontal position offset from the zone in pixels.",
        +      "maximum": 2000,
        +      "minimum": -2000,
        +      "type": "integer"
        +    },
        +    "offset_y_px": {
        +      "description": "Vertical position offset from the zone in pixels; negative moves up.",
        +      "maximum": 2000,
        +      "minimum": -2000,
        +      "type": "integer"
        +    },
        +    "shadow": {
        +      "additionalProperties": false,
        +      "description": "Drop shadow; omitted fields use the listed defaults.",
        +      "properties": {
        +        "angle": {
        +          "description": "Shadow angle in degrees (default 135).",
        +          "maximum": 360,
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "blur": {
        +          "description": "Shadow blur (default 40).",
        +          "maximum": 100,
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "color": {
        +          "description": "Shadow colour as #RRGGBB (default #000000).",
        +          "pattern": "^#[0-9A-Fa-f]{6}$",
        +          "type": "string"
        +        },
        +        "distance": {
        +          "description": "Shadow distance (default 7).",
        +          "maximum": 200,
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "opacity": {
        +          "description": "Shadow opacity percent (default 75).",
        +          "maximum": 100,
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "size": {
        +          "description": "Shadow size (default 0).",
        +          "maximum": 100,
        +          "minimum": 0,
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "strokes": {
        +      "description": "Up to three strokes in Premiere's Stroke list order; each stroke after the first is added with + next to Stroke. Layered outer strokes need increasing widths.",
        +      "items": {
        +        "additionalProperties": false,
        +        "description": "One stroke.",
        +        "properties": {
        +          "color": {
        +            "description": "Stroke colour as #RRGGBB.",
        +            "pattern": "^#[0-9A-Fa-f]{6}$",
        +            "type": "string"
        +          },
        +          "placement": {
        +            "description": "Stroke placement (default outer).",
        +            "enum": [
        +              "outer",
        +              "inner",
        +              "center"
        +            ],
        +            "type": "string"
        +          },
        +          "width_px": {
        +            "description": "Stroke width.",
        +            "maximum": 100,
        +            "minimum": 0,
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "color",
        +          "width_px"
        +        ],
        +        "type": "object"
        +      },
        +      "maxItems": 3,
        +      "type": "array"
        +    },
        +    "track_style_name": {
        +      "description": "Name for the saved Track Style (default Caption Track Style).",
        +      "maxLength": 80,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "zone": {
        +      "description": "Caption region in Premiere's Align and Transform zone grid.",
        +      "enum": [
        +        "top_left",
        +        "top_center",
        +        "top_right",
        +        "middle_left",
        +        "middle_center",
        +        "middle_right",
        +        "bottom_left",
        +        "bottom_center",
        +        "bottom_right"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / preset / description
        Previous value: -"Style preset to describe (default clean)."New value: +"Style preset to describe (default clean when custom_style is omitted)."
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_clip_adjustment_layer3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_clip_at_playhead3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_clip_at_position3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_clip_links3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_clip_markers3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_clip_properties3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_clip_speed3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_clip_volume3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_color_label3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_color_space3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_duplicate_media3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_effect_properties3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_encoder_presets5 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Maximum presets to return, applied after the filter and ordering. Omit to return all; the result's total is the unpaged count.",
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Number of presets to skip before returning, for paging with limit. Default 0.",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_export_file_extension3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_footage_interpretation3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_full_clip_info3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_full_project_overview3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_full_sequence_info3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_graphics_white_luminance3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_insertion_bin3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_item_info3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_keyframes4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / property_index
        Added value: +{
        +  "description": "Optional property index from get_effect_properties; required when property_name is duplicated.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_linked_items3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_metadata8 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / include_media_path
        Added value: +{
        +  "description": "Opt in to the full source media path, which can identify the local user and folders; default false.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / include_project_metadata / description
        Previous value: -"Include the potentially large Project Metadata XML payload (default: true unless parse_fields is true)."New value: +"Opt in to raw Project Metadata XML (maximum 256 Ki characters). Requires include_sensitive true; default false. Set false to skip reading this packet entirely."
      • changedInput schema / properties / include_sensitive / description
        Previous value: -"When parse_fields is true, include GPS, serials, and similar EXIF. Default false."New value: +"Opt in to sensitive GPS, serial, author, and contact fields. Required for any raw packet; default false."
      • changedInput schema / properties / include_xmp_metadata / description
        Previous value: -"Include the potentially large XMP XML payload (default: true unless parse_fields is true)."New value: +"Opt in to raw XMP XML (maximum 256 Ki characters). Requires include_sensitive true; default false. Set false to skip reading this packet entirely."
      • changedInput schema / properties / parse_fields / description
        Previous value: -"Parse project metadata and XMP into named fields (default false). When true, raw XML is omitted unless include_project_metadata or include_xmp_metadata is explicitly true."New value: +"Parse project metadata and XMP into named fields (default true). Set false for identity-only or explicitly requested raw packets."
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_mogrt_component3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_next_edit_point3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_offline_media3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedget_operation_performance
    • Changedget_playhead_position3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_premiere_state3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_project_info3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_project_item_info3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_project_panel_metadata3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_project_scratch_disks3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_qe_clip_info3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_render_queue_status3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_selected_clips3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_sequence_count3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_sequence_in_out_points3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_sequence_markers_by_type3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_sequence_settings3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_sequence_structure3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_source_monitor_info3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_source_monitor_position3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_target_tracks3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_timeline_gaps3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_timeline_summary3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_total_clip_count3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_track_info3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_unused_media3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_used_media_report3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_value_at_time4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / property_index
        Added value: +{
        +  "description": "Optional property index from get_effect_properties; required when property_name is duplicated.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_version_info3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_work_area3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_workspaces3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedget_xmp_metadata5 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / include_raw
        Added value: +{
        +  "description": "Opt in to raw XMP instead of parsed fields (maximum 256 Ki characters). Requires include_sensitive true; default false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / include_sensitive
        Added value: +{
        +  "description": "Opt in to GPS, serial, author and contact fields; required for raw XMP; default false.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedhas_proxy3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedimport_ae_comps3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedimport_edl3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedimport_fcp_xml7 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "new_project (default) opens the XML as a new project saved at project_path. into_open_project imports it into the open project.",
        +  "enum": [
        +    "new_project",
        +    "into_open_project"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / project_path / description
        Previous value: -"Full path of the new .prproj file Premiere should create for the imported timeline. Required: app.openFCPXML takes both a source and a destination path."New value: +"Full path of the new .prproj file Premiere should create for the imported timeline. Required in new_project mode (app.openFCPXML takes both a source and a destination path); ignored in into_open_project mode."
      • addedInput schema / properties / target_bin
        Added value: +{
        +  "description": "into_open_project mode only: bin name or node ID to import into. Defaults to the project root.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "path",
        -  "project_path"
        -]New value: +[
        +  "path"
        +]
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedimport_folder4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / target_bin
        Added value: +{
        +  "description": "Optional bin name or node ID to import into. Defaults to the project root.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedimport_image_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedimport_media3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedimport_mogrt3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedimport_mogrt_from_library3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedimport_sequences3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinsert_from_source3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_after_effects_render_templates3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_after_effects_template_source3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_cmx3600_edl3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_dom_object3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_edit_readiness3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_fcpxml_interchange3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_film_editorial_workflow3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedinspect_interchange_artifact
    • Addedinspect_interchange_loss_report
    • Changedinspect_media_streams5 fields changed
      • addedInput schema / properties / analysis_revision
        Added value: +{
        +  "description": "Optional project/timeline revision to isolate otherwise-identical analysis inputs.",
        +  "maxLength": 128,
        +  "type": "string"
        +}
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / use_cache
        Added value: +{
        +  "description": "Opt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_mogrt_library3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedinspect_operation_recovery
    • Addedinspect_otio_interchange
    • Changedinspect_project_item_av_metadata3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_project_recovery3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedinspect_rendered_video_scopes
    • Changedinspect_sequence_av_settings3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_sequence_review_report3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedinspect_stabilizer_status3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedinspect_timeline_snapshot
    • Addedinspect_workflow_checkpoint
    • Addedinspect_workflow_job
    • Changedinvert_selection3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedis_work_area_enabled3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlift_selection3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlink_selection3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_available_audio_effects3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_available_audio_transitions3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_available_effects3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_available_transitions3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_clip_effects3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_markers3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_project_items3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_sequence_checkpoints3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_sequence_tracks3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_sequences3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlist_stock_titles3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedlock_track3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmanage_media_watch3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmanage_project_context4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / records / items / additionalProperties
        Added value: +false
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmanage_proxies4 fields changed
      • addedInput schema / properties / enabled
        Added value: +{
        +  "description": "For 'toggle' only: sets the application-wide proxy display to this state (true shows proxies, false shows full-resolution media) and verifies it by reading app.getEnableProxies() back. Omit to flip the current state, which is discouraged because the outcome depends on a state you have not read.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedmap_keyframe_time_domain
    • Addedmap_source_ranges_to_timeline
    • Addedmap_word_timeline_occurrences
    • Changedmatch_frame3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmove_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmove_clip_to_track3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmove_item_to_bin3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmove_items_to_bin3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmove_playhead_to_edit3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmultiple_undo3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedmute_track3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changednavigate_playhead3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changednest_clips3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changednormalize_loudness_file3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedopen_in_source3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedopen_project3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedoverwrite_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedoverwrite_from_source3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpaste_clip_attributes3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedping3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_active_speaker_reframe3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedplan_audio_post_turnover
    • Changedplan_beat_montage3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_chapter_markers3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_client_notes_checklist3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_cross_app_workflow3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_emphasis_zoom_keyframes3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_filler_word_removal3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedplan_media_synchronization
    • Changedplan_multicam_angle_switches3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedplan_music_remix
    • Changedplan_pause_tightening3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_platform_delivery_matrix3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_reaction_captions3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedplan_scene_segments
    • Changedplan_short_export_folder3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_short_subscribe_cta3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_shot_match3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_silence_review_markers3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_speaker_checkerboard3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplan_word_mute_ranges3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplay_source_monitor3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedplay_timeline3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedpredict_timeline_edit
    • Addedprepare_transcript_workflow
    • Changedpreview_after_effects_render3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_after_effects_render_handoff3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_brand_spot3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_edit_plan5 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / plan / additionalProperties
        Added value: +false
      • addedInput schema / properties / plan / properties / operations / items / additionalProperties
        Added value: +false
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_editorial_plan3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedpreview_extended_edit_plan
    • Addedpreview_facility_metadata_intake
    • Changedpreview_mogrt_batch3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_mogrt_library_publish3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_mogrt_premiere_handoff3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_mogrt_recipe3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_motion_graphics_demo3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedpreview_otio_snapshot_export
    • Changedpreview_product_spot3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_project_intake3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedpreview_scene_review_workflow
    • Addedpreview_stacked_camera_edit
    • Changedpreview_watched_media_import3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpreview_workflow_recipe3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedpublish_mogrt_to_library3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedrank_short_form_candidates3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedrazor_all_tracks3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedread_sequence_captions3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedread_video_scopes5 fields changed
      • addedInput schema / properties / analysis_revision
        Added value: +{
        +  "description": "Optional project/timeline revision to isolate otherwise-identical analysis inputs.",
        +  "maxLength": 128,
        +  "type": "string"
        +}
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / use_cache
        Added value: +{
        +  "description": "Opt in to bounded process-memory caching keyed by source path/identity, media content SHA-256, exact options, revision, and analysis version. Files over 256 MiB analyze uncached. Default false.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedredo3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedrefresh_media3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedrelink_media3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedremove_all_effects3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedremove_effect3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedremove_effect_by_name3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedremove_from_timeline3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedremove_keyframe4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / property_index
        Added value: +{
        +  "description": "Optional property index from get_effect_properties; required when property_name is duplicated.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedremove_keyframe_range4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / property_index
        Added value: +{
        +  "description": "Optional property index from get_effect_properties; required when property_name is duplicated.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedremove_selected_clips4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / ripple / description
        Previous value: -"If true, close the gap after removing (ripple delete). Default: false"New value: +"Ripple removal is unsupported and refused before editing. Default: false"
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedrename_bin3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedrename_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedrename_project_item3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedrename_track3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedreplace_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedreplace_clip_media3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedreverse_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedreview_broll_placements3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedreview_dialogue_candidates3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedreview_quote_paper_edit3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedreview_sync_evidence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedreview_text_changes3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedripple_delete3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedripple_remove_timeline_ranges
    • Changedroll_edit3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedsave_project3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedsave_project_as3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedsave_workflow_checkpoint
    • Changedscene_edit_detection3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedsearch_project_context3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedsearch_project_items3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedsearch_workflow_recipes3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedselect_all_clips3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedselect_clips_by_color3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedselect_clips_by_name3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedselect_clips_by_pattern3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedselect_clips_in_range3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedselect_disabled_clips3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedselect_item3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_active_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_all_tracks_targeted3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_anti_alias_quality3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_blend_mode3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_anchor_point3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_duration3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_opacity3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_pan3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_position3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_properties3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_properties_batch3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_rotation3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_scale3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_selection3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_speed_qe3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_start_time3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clip_volume3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_clips_volume3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_color_label3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_color_value5 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / property_index
        Added value: +{
        +  "description": "Optional exact property index from get_effect_properties; required if the name is repeated.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / property_name / description
        Previous value: -"Name of the color property"New value: +"Name of the color property; duplicate names require property_index from get_effect_properties."
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_effect_property5 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / property_index
        Added value: +{
        +  "description": "Optional property index from get_effect_properties; required when property_name is duplicated.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / property_name / description
        Previous value: -"Display name of the property (e.g., 'Scale', 'Position', 'Opacity')"New value: +"Display name of the property; duplicate names require property_index."
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_footage_interpretation4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / field_type
        Added value: +{
        +  "description": "Field order of interlaced footage: 0 = progressive, 1 = upper field first, 2 = lower field first",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_frame_blend3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_graphics_white_luminance3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_item_in_out3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_keyframe_interpolation4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / property_index
        Added value: +{
        +  "description": "Optional property index from get_effect_properties; required when property_name is duplicated.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_metadata3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_offline3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_override_frame_rate3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_override_pixel_aspect_ratio3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_playhead_position3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_poster_frame3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_project_item_audio_channel_mapping3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_project_panel_metadata3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_project_scratch_disk3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_scale_to_frame_size3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_scale_width_height3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_scratch_disk_path3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_sequence_audio_settings3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_sequence_display_format5 fields changed
      • changedInput schema / properties / audio_display_format / description
        Previous value: -"Audio: 0=Audio Samples, 1=Milliseconds"New value: +"Audio: 200=Audio Samples, 201=Milliseconds. 0 and 1 are accepted as 200 and 201."
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / video_display_format / description
        Previous value: -"Video: 0=24 Timecode, 1=25 Timecode, 2=29.97 Drop-frame, 3=29.97 Non-drop-frame, 4=30 Timecode, 5=50 Timecode, 6=59.94 Drop-frame, 7=59.94 Non-drop-frame, 8=60 Timecode, 9=Frames, 10=Feet+Frames 16mm, 11=Feet+Frames 35mm"New value: +"Video: 100=24 Timecode, 101=25 Timecode, 102=29.97 Drop-frame, 103=29.97 Non-drop-frame, 104=30 Timecode, 105=50 Timecode, 106=59.94 Drop-frame, 107=59.94 Non-drop-frame, 108=60 Timecode, 109=Frames, 110=23.976 Timecode, 111=Feet+Frames 16mm, 112=Feet+Frames 35mm, 113=48 Timecode. 0-13 are accepted as 100-113."
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_sequence_field_type3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_sequence_frame_rate3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_sequence_in_out_points3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_sequence_pixel_aspect_ratio3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_sequence_resolution3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_sequence_settings3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_source_in_out4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_start_time3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_target_track3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_time_interpolation3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_transcode_on_ingest3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_uniform_scale3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_work_area3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_workspace3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_xmp_metadata3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedset_zero_point4 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / start_seconds / description
        Previous value: -"Start time in seconds for the timecode origin"New value: +"Start time in seconds for the timecode origin (0 or more)"
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedsetup_ducking3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedslide_edit3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedslip_edit3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedspeed_change3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedsplit_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedstabilize_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedstart_batch_encode3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedstart_local_analysis_job
    • Changedstop_playback3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedtoggle_track_visibility3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedtrim_clip3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedundo3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedunlink_selection3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "expected_cep_target": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "sequence_id"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "source_item"
        +        ]
        +      }
        +    ],
        +    "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +    "properties": {
        +      "backend": {
        +        "const": "cep",
        +        "description": "Backend namespace for these IDs.",
        +        "type": "string"
        +      },
        +      "clip": {
        +        "additionalProperties": false,
        +        "description": "Optional exact reviewed timeline clip.",
        +        "properties": {
        +          "effect": {
        +            "additionalProperties": false,
        +            "description": "Reviewed effect and parameter identity checked before mutation.",
        +            "properties": {
        +              "display_name": {
        +                "description": "Optional exact host display name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "match_name": {
        +                "description": "Effect match name from host inspection.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "parameter_index": {
        +                "description": "Inspected zero-based parameter index.",
        +                "maximum": 255,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "parameter_name": {
        +                "description": "Exact inspected parameter name.",
        +                "maxLength": 512,
        +                "minLength": 1,
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "match_name",
        +              "parameter_index",
        +              "parameter_name"
        +            ],
        +            "type": "object"
        +          },
        +          "end_ticks": {
        +            "description": "Exact expected exclusive timeline end ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "in_ticks": {
        +            "description": "Exact expected source In ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Stable CEP node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "out_ticks": {
        +            "description": "Exact expected exclusive source Out ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "project_item_id": {
        +            "description": "Expected source project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "start_ticks": {
        +            "description": "Exact expected timeline start ticks.",
        +            "pattern": "^-?\\d{1,30}$",
        +            "type": "string"
        +          },
        +          "track_index": {
        +            "description": "Expected zero-based track index; identity still checked.",
        +            "maximum": 255,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "track_type": {
        +            "description": "Expected media track group.",
        +            "enum": [
        +              "video",
        +              "audio"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id",
        +          "track_type",
        +          "track_index"
        +        ],
        +        "type": "object"
        +      },
        +      "project_document_id": {
        +        "description": "Exact Premiere project document ID observed during review.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Stable expected active sequence ID.",
        +        "maxLength": 512,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "source_item": {
        +        "additionalProperties": false,
        +        "description": "Reviewed source identity for a source-only operation.",
        +        "properties": {
        +          "media_path": {
        +            "description": "Optional exact source-media path.",
        +            "maxLength": 4096,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "description": "Exact project-item node ID.",
        +            "maxLength": 512,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "node_id"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "backend"
        +    ],
        +    "type": "object"
        +  },
        +  "expected_project_path": {
        +    "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +    "maxLength": 4096,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedunnest_sequence3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedupdate_marker3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedvalidate_cmx3600_edl3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedvalidate_export_preset3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedvalidate_mogrt_brand_kit3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedvalidate_platform_publish_package3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedvalidate_project_for_export6 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / gap_limit
        Added value: +{
        +  "description": "Maximum per-track gaps to return when per_track_gaps is true (default 200).",
        +  "maximum": 2000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / gap_offset
        Added value: +{
        +  "description": "Zero-based offset into the optional per-track gap list (default 0).",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / per_track_gaps
        Added value: +{
        +  "description": "Include the per-track gap list in a bounded page (default false); composite black/dead-air checks remain available without it.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedverify_after_effects_connection3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedverify_caption_render_evidence
    • Changedverify_delivery_conformance3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedverify_delivery_file3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedverify_fcpxml_media_references3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedverify_mogrt_artifact3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Changedverify_premiere_connection3 fields changed
      • addedInput schema / properties / expected_cep_target
        Added value: +{
        +  "additionalProperties": false,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "sequence_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "source_item"
        +      ]
        +    }
        +  ],
        +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
        +  "properties": {
        +    "backend": {
        +      "const": "cep",
        +      "description": "Backend namespace for these IDs.",
        +      "type": "string"
        +    },
        +    "clip": {
        +      "additionalProperties": false,
        +      "description": "Optional exact reviewed timeline clip.",
        +      "properties": {
        +        "effect": {
        +          "additionalProperties": false,
        +          "description": "Reviewed effect and parameter identity checked before mutation.",
        +          "properties": {
        +            "display_name": {
        +              "description": "Optional exact host display name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "match_name": {
        +              "description": "Effect match name from host inspection.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "parameter_index": {
        +              "description": "Inspected zero-based parameter index.",
        +              "maximum": 255,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "parameter_name": {
        +              "description": "Exact inspected parameter name.",
        +              "maxLength": 512,
        +              "minLength": 1,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "match_name",
        +            "parameter_index",
        +            "parameter_name"
        +          ],
        +          "type": "object"
        +        },
        +        "end_ticks": {
        +          "description": "Exact expected exclusive timeline end ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "in_ticks": {
        +          "description": "Exact expected source In ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Stable CEP node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "out_ticks": {
        +          "description": "Exact expected exclusive source Out ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "project_item_id": {
        +          "description": "Expected source project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "start_ticks": {
        +          "description": "Exact expected timeline start ticks.",
        +          "pattern": "^-?\\d{1,30}$",
        +          "type": "string"
        +        },
        +        "track_index": {
        +          "description": "Expected zero-based track index; identity still checked.",
        +          "maximum": 255,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "track_type": {
        +          "description": "Expected media track group.",
        +          "enum": [
        +            "video",
        +            "audio"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "track_type",
        +        "track_index"
        +      ],
        +      "type": "object"
        +    },
        +    "project_document_id": {
        +      "description": "Exact Premiere project document ID observed during review.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "sequence_id": {
        +      "description": "Stable expected active sequence ID.",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "source_item": {
        +      "additionalProperties": false,
        +      "description": "Reviewed source identity for a source-only operation.",
        +      "properties": {
        +        "media_path": {
        +          "description": "Optional exact source-media path.",
        +          "maxLength": 4096,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "Exact project-item node ID.",
        +          "maxLength": 512,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "backend"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / expected_project_path
        Added value: +{
        +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
        +  "maxLength": 4096,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
        +  "type": "object"
        +}
    • Addedverify_temporal_render_artifact
    • Addedverify_timeline_postconditions
    • Addedwait_workflow_job
  5. 16 tool updatesv1.19.1
    • Changedapply_edit_plan2 fields changed
      • addedInput schema / properties / plan / properties / operations / items / properties / allow_large_ripple
        Added value: +{
        +  "description": "ripple remove_clip: allow execution above large_ripple_threshold after the read-only mover estimate",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / plan / properties / operations / items / properties / large_ripple_threshold
        Added value: +{
        +  "description": "ripple remove_clip: refuse above this mover count unless allow_large_ripple is true (default 400)",
        +  "maximum": 5000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedencode_file1 field changed
      • addedInput schema / properties / start_batch
        Added value: +{
        +  "description": "Opt in to start the entire ready Adobe Media Encoder queue after this handoff, including unrelated jobs. Default false (enqueue only). A successful call does not verify that any render started or completed.",
        +  "type": "boolean"
        +}
    • Changedencode_project_item1 field changed
      • addedInput schema / properties / start_batch
        Added value: +{
        +  "description": "Opt in to start the entire ready Adobe Media Encoder queue after this handoff, including unrelated jobs. Default false (enqueue only). A successful call does not verify that any render started or completed.",
        +  "type": "boolean"
        +}
    • Changedget_active_sequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "clip_limit": {
        +    "description": "Page size (default: 50, maximum: 200). Payload budget may shorten a page. Inspect nextOffset.",
        +    "maximum": 200,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  "clip_offset": {
        +    "description": "Offset into matching clips (matching gaps for get_timeline_gaps), video before audio (default: 0).",
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "end_seconds": {
        +    "description": "Optional exclusive window end; must exceed start_seconds.",
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "start_seconds": {
        +    "description": "Optional inclusive window start; returns overlapping items.",
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "track_index": {
        +    "description": "Optional zero-based track index within each selected type.",
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "track_type": {
        +    "description": "Track type to page (default: both). Track counts remain available.",
        +    "enum": [
        +      "video",
        +      "audio",
        +      "both"
        +    ],
        +    "type": "string"
        +  }
        +}
    • Changedget_full_sequence_info6 fields changed
      • addedInput schema / properties / clip_limit
        Added value: +{
        +  "description": "Page size (default: 50, maximum: 200). Payload budget may shorten a page. Inspect nextOffset.",
        +  "maximum": 200,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / clip_offset
        Added value: +{
        +  "description": "Offset into matching clips (matching gaps for get_timeline_gaps), video before audio (default: 0).",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / end_seconds
        Added value: +{
        +  "description": "Optional exclusive window end; must exceed start_seconds.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / start_seconds
        Added value: +{
        +  "description": "Optional inclusive window start; returns overlapping items.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / track_index
        Added value: +{
        +  "description": "Optional zero-based track index within each selected type.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / track_type
        Added value: +{
        +  "description": "Track type to page (default: both). Track counts remain available.",
        +  "enum": [
        +    "video",
        +    "audio",
        +    "both"
        +  ],
        +  "type": "string"
        +}
    • Changedget_sequence_structure6 fields changed
      • addedInput schema / properties / clip_limit
        Added value: +{
        +  "description": "Page size (default: 50, maximum: 200). Payload budget may shorten a page. Inspect nextOffset.",
        +  "maximum": 200,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / clip_offset
        Added value: +{
        +  "description": "Offset into matching clips (matching gaps for get_timeline_gaps), video before audio (default: 0).",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / end_seconds
        Added value: +{
        +  "description": "Optional exclusive window end; must exceed start_seconds.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / start_seconds
        Added value: +{
        +  "description": "Optional inclusive window start; returns overlapping items.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / track_index
        Added value: +{
        +  "description": "Optional zero-based track index within each selected type.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / track_type
        Added value: +{
        +  "description": "Track type to page (default: both). Track counts remain available.",
        +  "enum": [
        +    "video",
        +    "audio",
        +    "both"
        +  ],
        +  "type": "string"
        +}
    • Changedget_timeline_gaps5 fields changed
      • addedInput schema / properties / clip_limit
        Added value: +{
        +  "description": "Page size (default: 50, maximum: 200). Payload budget may shorten a page. Inspect nextOffset.",
        +  "maximum": 200,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / clip_offset
        Added value: +{
        +  "description": "Offset into matching clips (matching gaps for get_timeline_gaps), video before audio (default: 0).",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / end_seconds
        Added value: +{
        +  "description": "Optional exclusive window end; must exceed start_seconds.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / start_seconds
        Added value: +{
        +  "description": "Optional inclusive window start; returns overlapping items.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / track_index
        Added value: +{
        +  "description": "Optional zero-based track index within each selected type.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedmanage_proxies1 field changed
      • addedInput schema / properties / start_batch
        Added value: +{
        +  "description": "Opt in to start the entire ready Adobe Media Encoder queue after this handoff, including unrelated jobs. Default false (enqueue only). A successful call does not verify that any render started or completed.",
        +  "type": "boolean"
        +}
    • Changedpreview_edit_plan2 fields changed
      • addedInput schema / properties / plan / properties / operations / items / properties / allow_large_ripple
        Added value: +{
        +  "description": "ripple remove_clip: allow execution above large_ripple_threshold after the read-only mover estimate",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / plan / properties / operations / items / properties / large_ripple_threshold
        Added value: +{
        +  "description": "ripple remove_clip: refuse above this mover count unless allow_large_ripple is true (default 400)",
        +  "maximum": 5000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedremove_from_timeline2 fields changed
      • addedInput schema / properties / allow_large_ripple
        Added value: +{
        +  "description": "Allow a ripple above large_ripple_threshold after its read-only mover estimate.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / large_ripple_threshold
        Added value: +{
        +  "description": "Mover count above which ripple removal refuses unless allow_large_ripple is true (default: 400).",
        +  "maximum": 5000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Addedreview_broll_placements
    • Addedreview_dialogue_candidates
    • Addedreview_quote_paper_edit
    • Addedreview_sync_evidence
    • Addedreview_text_changes
    • Changedripple_delete2 fields changed
      • addedInput schema / properties / allow_large_ripple
        Added value: +{
        +  "description": "Allow a ripple above large_ripple_threshold after its preflight estimate.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / large_ripple_threshold
        Added value: +{
        +  "description": "Mover count above which ripple_delete refuses unless allow_large_ripple is true (default: 400).",
        +  "maximum": 5000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
  6. 21 tool updatesv1.19.0
    • Changedadd_audio_keyframes4 fields changed
      • changedInput schema / properties / keyframes / items / properties / level_db / description
        Previous value: -"Audio level in dB"New value: +"Audio level in dB (maximum +15 dB)"
      • addedInput schema / properties / keyframes / items / properties / level_db / maximum
        Added value: +15
      • addedInput schema / properties / keyframes / items / properties / time_seconds / minimum
        Added value: +0
      • addedInput schema / properties / keyframes / minItems
        Added value: +1
    • Changedadd_keyframe1 field changed
      • changedInput schema / properties / time_seconds / description
        Previous value: -"Time in seconds relative to clip start where to add keyframe"New value: +"Seconds from the clip's start on the timeline (0 is the clip's first frame) where to add the keyframe"
    • Changedadd_marker1 field changed
      • changedInput schema / properties / node_id / description
        Previous value: -"Optional clip node ID to add marker to clip instead of sequence"New value: +"Optional clip node ID to add the marker to that clip instead of the sequence. Premiere 25.2.3 timeline clips have no marker collection, so this refuses there and names the source time to use with add_marker_to_project_item."
    • Changedadd_markers_batch1 field changed
      • changedInput schema / properties / node_id / description
        Previous value: -"Optional timeline clip node ID; markers are then created on that clip instead of the sequence (requires the active sequence)."New value: +"Optional timeline clip node ID; markers are then created on that clip instead of the sequence (requires the active sequence). Premiere 25.2.3 timeline clips have no marker collection, so this refuses there and names the source time to use with add_marker_to_project_item."
    • Changedadd_to_render_queue1 field changed
      • addedInput schema / properties / start_batch
        Added value: +{
        +  "description": "Opt in to start the entire ready Adobe Media Encoder queue after this handoff, including unrelated jobs. Default false (enqueue only). A successful call does not verify that any render started or completed.",
        +  "type": "boolean"
        +}
    • Changeddelete_marker1 field changed
      • changedInput schema / properties / node_id / description
        Previous value: -"Optional clip node ID (deletes from sequence if omitted)"New value: +"Optional clip node ID (deletes from sequence if omitted). Premiere 25.2.3 timeline clips have no marker collection, so this refuses there."
    • Changedexport_sequence1 field changed
      • changedInput schema / properties / range / description
        Previous value: -"What to render: the entire sequence (default), the sequence in/out range (set_sequence_in_out_points), or the work area. Scripts cannot set the work area on current Premiere builds, so prefer in_to_out for a ranged export."New value: +"What to render: the entire sequence (default), the sequence in/out range (set_sequence_in_out_points), or the work area. work_area requires an enabled work area around part of the sequence; unset or full-sequence work areas are refused instead of encoding everything. Set and read back a valid work area where the host supports it, or use in_to_out for a ranged export."
    • Changedget_value_at_time1 field changed
      • changedInput schema / properties / time_seconds / description
        Previous value: -"Time in seconds to query the value at"New value: +"Seconds from the clip's start on the timeline (0 is the clip's first frame) to read the value at"
    • Changedimport_media2 fields changed
      • addedInput schema / properties / file_paths / items / minLength
        Added value: +1
      • addedInput schema / properties / file_paths / minItems
        Added value: +1
    • Changedmultiple_undo3 fields changed
      • addedInput schema / properties / acknowledge_untracked_markers
        Added value: +{
        +  "description": "Explicitly acknowledge that QE steps reverse or restore prior non-marker actions, because marker reversal is not verified. Default false; marker boundaries refuse the entire request before any step.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / expected_undo_stack_index / description
        Previous value: -"Optional safety guard: the undoStackIndex a tool result reported right after the call you want to reverse. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. This compares the position only: if actions were undone and new ones recorded since, the position can match again and undo would reverse the newer action."New value: +"Required safety guard: the undoStackIndex a tool result reported right after the call you want to reverse. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. The guard compares the position only; matching position cannot prove which action is on top."
      • addedInput schema / required
        Added value: +[
        +  "expected_undo_stack_index"
        +]
    • Changedredo3 fields changed
      • addedInput schema / properties / acknowledge_untracked_markers
        Added value: +{
        +  "description": "Explicitly acknowledge that QE steps reverse or restore prior non-marker actions, because marker reversal is not verified. Default false; marker boundaries refuse the entire request before any step.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / expected_undo_stack_index / description
        Previous value: -"Optional safety guard: the undoStackIndexAfter reported by the undo you want to redo. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. This compares the position only: if other actions were undone and redone, or new ones recorded, since, the position can match again and redo would re-apply a different action than the one you undid (a new action also clears Premiere's redo history)."New value: +"Required safety guard: the undoStackIndexAfter reported by the undo you want to redo. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. The guard compares the position only; matching position cannot prove which action is on top."
      • addedInput schema / required
        Added value: +[
        +  "expected_undo_stack_index"
        +]
    • Changedrelink_media1 field changed
      • addedInput schema / properties / allow_unsafe_cep_relink
        Added value: +{
        +  "description": "Explicitly permit the legacy CEP changeMediaPath call. It can wedge Premiere even when the target file exists; prefer relink_offline_media_uxp.",
        +  "type": "boolean"
        +}
    • Changedremove_keyframe1 field changed
      • changedInput schema / properties / time_seconds / description
        Previous value: -"Time in seconds of the keyframe to remove"New value: +"Seconds from the clip's start on the timeline (0 is the clip's first frame) of the keyframe to remove"
    • Changedremove_keyframe_range2 fields changed
      • changedInput schema / properties / end_seconds / description
        Previous value: -"End of the range in seconds"New value: +"End of the range, in seconds from the clip's start; must not be before start_seconds"
      • changedInput schema / properties / start_seconds / description
        Previous value: -"Start of the range in seconds"New value: +"Start of the range: seconds from the clip's start on the timeline (0 is the clip's first frame)"
    • Changedset_blend_mode1 field changed
      • changedInput schema / properties / blend_mode / enum
        Previous value: -[
        -  "Normal",
        -  "Dissolve",
        -  "Darken",
        -  "Multiply",
        -  "Color Burn",
        -  "Linear Burn",
        -  "Darker Color",
        -  "Lighten",
        -  "Screen",
        -  "Color Dodge",
        -  "Linear Dodge",
        -  "Lighter Color",
        -  "Overlay",
        -  "Soft Light",
        -  "Hard Light",
        -  "Vivid Light",
        -  "Linear Light",
        -  "Pin Light",
        -  "Hard Mix",
        -  "Difference",
        -  "Exclusion",
        -  "Subtract",
        -  "Divide",
        -  "Hue",
        -  "Saturation",
        -  "Color",
        -  "Luminosity"
        -]New value: +[
        +  "Color",
        +  "Color Burn",
        +  "Color Dodge",
        +  "Darken",
        +  "Darker Color",
        +  "Difference",
        +  "Dissolve",
        +  "Exclusion",
        +  "Hard Light",
        +  "Hard Mix",
        +  "Hue",
        +  "Lighten",
        +  "Lighter Color",
        +  "Linear Burn",
        +  "Linear Dodge",
        +  "Linear Light",
        +  "Luminosity",
        +  "Multiply",
        +  "Normal",
        +  "Overlay",
        +  "Pin Light",
        +  "Saturation",
        +  "Screen",
        +  "Soft Light",
        +  "Vivid Light",
        +  "Subtract",
        +  "Divide"
        +]
    • Changedset_clip_properties5 fields changed
      • addedInput schema / properties / opacity / maximum
        Added value: +100
      • addedInput schema / properties / opacity / minimum
        Added value: +0
      • changedInput schema / properties / scale / description
        Previous value: -"Scale percentage (100 = original size)"New value: +"Scale percentage (0-10000; 100 = original size)"
      • addedInput schema / properties / scale / maximum
        Added value: +10000
      • addedInput schema / properties / scale / minimum
        Added value: +0
    • Changedset_keyframe_interpolation1 field changed
      • changedInput schema / properties / time_seconds / description
        Previous value: -"Time in seconds of the keyframe"New value: +"Seconds from the clip's start on the timeline (0 is the clip's first frame) of the keyframe"
    • Changedset_playhead_position1 field changed
      • changedInput schema / properties / time_seconds / description
        Previous value: -"Time position in seconds to move the playhead to"New value: +"Time position in seconds to move the playhead to (0 to the sequence end)"
    • Changedset_sequence_in_out_points2 fields changed
      • changedInput schema / properties / in_seconds / description
        Previous value: -"In-point in seconds"New value: +"In-point in seconds (0 or later)"
      • changedInput schema / properties / out_seconds / description
        Previous value: -"Out-point in seconds"New value: +"Out-point in seconds; after in_seconds and not past the sequence end"
    • Changedsetup_ducking2 fields changed
      • changedInput schema / properties / base_db / description
        Previous value: -"Normal clip level in dB (defaults to 0)."New value: +"Normal clip level in dB (defaults to 0; maximum +15 dB)."
      • changedInput schema / properties / ducking_windows / items / properties / ducked_db / description
        Previous value: -"Level during the window, in dB."New value: +"Level during the window, in dB (maximum +15 dB)."
    • Changedundo3 fields changed
      • addedInput schema / properties / acknowledge_untracked_markers
        Added value: +{
        +  "description": "Explicitly acknowledge that QE steps reverse or restore prior non-marker actions, because marker reversal is not verified. Default false; marker boundaries refuse the entire request before any step.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / expected_undo_stack_index / description
        Previous value: -"Optional safety guard: the undoStackIndex a tool result reported right after the call you want to reverse. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. This compares the position only: if actions were undone and new ones recorded since, the position can match again and undo would reverse the newer action."New value: +"Required safety guard: the undoStackIndex a tool result reported right after the call you want to reverse. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. The guard compares the position only; matching position cannot prove which action is on top."
      • addedInput schema / required
        Added value: +[
        +  "expected_undo_stack_index"
        +]
  7. 384 tool updatesv1.18.6
    • Changedadd_adjustment_layer2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_audio_keyframes2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_custom_metadata_field2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_keyframe2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_marker2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_marker_to_project_item2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_markers_batch1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_text_overlay2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Addedadd_title
    • Changedadd_to_render_queue2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_to_timeline2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_to_timeline_batch1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_track2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_tracks2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_transition2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadd_transition_to_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedadjust_audio_levels2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedanalyze_dialogue_edit_candidates1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedanalyze_loudness2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedanalyze_video_interlacing2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedanalyze_video_qc2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedapply_after_effects_render_handoff1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedapply_audio_effect2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedapply_edit_plan5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / plan / description
        Previous value: -"An edit plan containing insert_clip and remove_clip operations (maximum 100)"New value: +"An edit plan: { sequence_id?, operations: [...] } with up to 100 insert_clip and remove_clip operations. Operations run in order, and each one's times refer to the timeline as the operations before it left it."
      • addedInput schema / properties / plan / properties
        Added value: +{
        +  "operations": {
        +    "items": {
        +      "properties": {
        +        "audio_track_index": {
        +          "description": "insert_clip: audio track (default 0)",
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "include_linked": {
        +          "description": "remove_clip without ripple: also remove linked audio/video partners (default true)",
        +          "type": "boolean"
        +        },
        +        "item_id": {
        +          "description": "insert_clip: project item node ID or name",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "remove_clip: timeline clip node ID",
        +          "type": "string"
        +        },
        +        "ripple": {
        +          "description": "remove_clip: close the gap with a verified sync-locked ripple delete (always takes linked partners)",
        +          "type": "boolean"
        +        },
        +        "start_seconds": {
        +          "description": "insert_clip: timeline insert time in seconds (insert edit, sync-locked tracks shift)",
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "type": {
        +          "enum": [
        +            "insert_clip",
        +            "remove_clip"
        +          ],
        +          "type": "string"
        +        },
        +        "video_track_index": {
        +          "description": "insert_clip: video track (default 0)",
        +          "minimum": 0,
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "type"
        +      ],
        +      "type": "object"
        +    },
        +    "maxItems": 100,
        +    "minItems": 1,
        +    "type": "array"
        +  },
        +  "sequence_id": {
        +    "description": "Sequence name or ID to edit (activated first); defaults to the active sequence",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / plan / required
        Added value: +[
        +  "operations"
        +]
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedapply_effect2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedapply_lut2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedapply_mogrt_premiere_handoff1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedapply_spot_workflow_plan1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedattach_custom_property2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedaudit_timeline_health1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedauto_reframe_sequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedbatch_add_transitions2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedbatch_apply_effect2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedbatch_enable_disable2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedbatch_rename_clips2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedbuild_caption_artifact1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcapture_frame2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcheck_caption_safe_zone1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcheck_offline_media1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedclear_item_in_out2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedclear_sequence_in_out2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedclose_all_source_clips1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedclose_project3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / project_path
        Added value: +{
        +  "description": "Path of the open project to close (default: the active project)",
        +  "type": "string"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedclose_sequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedclose_source_monitor1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcolor_correct2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcompare_cmx3600_edls2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcompute_mask_fit_motion1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedconsolidate_and_transfer4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / copy_to_new_location / description
        Previous value: -"Copy media to a new location (default: true)"New value: +"Must be true (the default): Premiere's scripted Project Manager always collects media into the destination."
      • changedInput schema / properties / transcode / description
        Previous value: -"Transcode media during copy (default: false)"New value: +"Transcode media to match the sequence instead of copying it (default: false)"
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedconsolidate_duplicates1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcopy_effect_values2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcopy_effects_between_clips2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_bars_and_tone3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / bin_id
        Added value: +{
        +  "description": "Optional destination bin: node ID, slash-separated bin path from the project root, or bin name. The bin is resolved before anything is created; the item is moved there and its location read back.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_bin2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_caption_track1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_context_edit_plan2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_editorial_context_pack1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_editorial_plan1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_mogrt_batch1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_mogrt_recipe1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_project2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_project_backup2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_sequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_sequence_checkpoint1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_sequence_from_clips2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_sequence_from_preset2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_smart_bin2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_subclip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcreate_subsequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedcrop_clip1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddelete_bin2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddelete_marker2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddelete_multiple_project_items3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / confirm_remove_from_sequences
        Added value: +{
        +  "description": "Delete even when an item (or something inside a bin) is used in a sequence, which also removes those timeline clips (default: false).",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddelete_preview_files2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddelete_project_item3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / confirm_remove_from_sequences
        Added value: +{
        +  "description": "Delete even when the item (or something inside the bin) is used in a sequence, which also removes those timeline clips (default: false).",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddelete_sequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddelete_track3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / force
        Added value: +{
        +  "description": "Also delete a track that holds clips, removing those clips (default: false)",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddeselect_all_clips1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddetach_proxy2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddetect_active_picture_bounds2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddetect_audio_transients2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddetect_beats1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddetect_motion_peaks2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddetect_repeated_takes1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddetect_scene_edits1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddetect_silence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddetect_source_scene_changes2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changeddiff_sequence_snapshots1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedduplicate_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedduplicate_sequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedenable_disable_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedencode_file2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedencode_project_item2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedenqueue_after_effects_render1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_aaf2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_as_fcp_xml2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_as_project2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_frame2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_omf2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_sequence7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "description": "Replace a file that already exists at output_path (default: false, which refuses the export). The replacement is only reported as written when the file's size or modification time changes.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / preset_path / description
        Previous value: -"Path to an AME preset file (.epr). Uses default H.264 if omitted."New value: +"Path to an AME preset file (.epr). Uses the default H.264 (MP4) Match Source preset if omitted."
      • addedInput schema / properties / range
        Added value: +{
        +  "description": "What to render: the entire sequence (default), the sequence in/out range (set_sequence_in_out_points), or the work area. Scripts cannot set the work area on current Premiere builds, so prefer in_to_out for a ranged export.",
        +  "enum": [
        +    "entire",
        +    "in_to_out",
        +    "work_area"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / timeout_minutes
        Added value: +{
        +  "description": "How long to wait for the render (default: 15; long sequences such as full podcast episodes may need more)",
        +  "maximum": 240,
        +  "minimum": 1,
        +  "type": "number"
        +}
      • changedInput schema / properties / work_area_only / description
        Previous value: -"Export only the work area (default: false, exports entire sequence)"New value: +"Deprecated alias for range: 'work_area'"
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_sequence_clip_review_frames2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_sequence_edl1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_sequence_marker_review_frames1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedexport_sequence_review_frames2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedextract_selection1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedfind_items_by_media_path2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedfind_project_item_by_name2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedfreeze_frame2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedgenerate_media_contact_sheet2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_active_sequence1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_advanced_feature_support2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_all_project_paths1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_av_feature_support1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_bin_contents3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / bin_id / description
        Previous value: -"Bin name, node ID, or path (e.g., 'Footage', 'Footage/Raw')"New value: +"Bin name, node ID, or path (e.g., 'Footage', 'Footage/Raw'); '/' or 'root' for the project root"
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_bridge_telemetry1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_capabilities1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_caption_style_guidance1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_clip_adjustment_layer2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_clip_at_playhead2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_clip_at_position2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_clip_links2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_clip_markers2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_clip_properties2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_clip_speed2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_clip_volume2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_color_label2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_color_space2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_duplicate_media3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "contains": {
        +    "description": "Optional case-insensitive substring matched against project item names before paging. Omit or pass an empty string to include every entry.",
        +    "maxLength": 256,
        +    "type": "string"
        +  },
        +  "limit": {
        +    "description": "Maximum duplicate media groups (a group matches contains when any item name matches) entries to return (1-500, default 100).",
        +    "maximum": 500,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  "offset": {
        +    "description": "Zero-based index of the first duplicate media groups (a group matches contains when any item name matches) entry to return (default 0). Pass the previous response's nextOffset to read the next page.",
        +    "minimum": 0,
        +    "type": "integer"
        +  }
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_effect_properties2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_encoder_presets3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / format / description
        Previous value: -"Filter to presets whose name or format bucket matches this (e.g. 'H.264', 'ProRes', 'Proxy'). Omit to list all."New value: +"Filter by container/format (e.g. 'H.264', 'mp4', 'QuickTime', 'WAV') or preset name (e.g. 'ProRes', 'Proxy'). Presets whose format matches come first. Omit to list all."
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_export_file_extension2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_footage_interpretation2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_full_clip_info2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_full_project_overview1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_full_sequence_info2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_graphics_white_luminance1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_insertion_bin1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_item_info2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_keyframes2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_linked_items2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_metadata2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_mogrt_component2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_next_edit_point2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_offline_media1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_playhead_position1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_premiere_state1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_project_info1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_project_item_info2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_project_panel_metadata3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "max_chars": {
        +    "description": "Maximum characters of metadata XML to return (256-200000, default 20000). Longer XML is cut at this length and reported with truncated: true and totalChars.",
        +    "maximum": 200000,
        +    "minimum": 256,
        +    "type": "integer"
        +  }
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_project_scratch_disks1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_qe_clip_info2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_render_queue_status1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_selected_clips1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_sequence_count1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_sequence_in_out_points1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_sequence_markers_by_type2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_sequence_settings2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_sequence_structure2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_source_monitor_info1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_source_monitor_position1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_target_tracks1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_timeline_gaps2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_timeline_summary2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_total_clip_count1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_track_info2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_unused_media3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "contains": {
        +    "description": "Optional case-insensitive substring matched against project item names before paging. Omit or pass an empty string to include every entry.",
        +    "maxLength": 256,
        +    "type": "string"
        +  },
        +  "limit": {
        +    "description": "Maximum unused project items entries to return (1-500, default 100).",
        +    "maximum": 500,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  "offset": {
        +    "description": "Zero-based index of the first unused project items entry to return (default 0). Pass the previous response's nextOffset to read the next page.",
        +    "minimum": 0,
        +    "type": "integer"
        +  }
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_used_media_report2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_value_at_time2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_version_info1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_work_area1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_workspaces1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedget_xmp_metadata2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedhas_proxy2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedimport_ae_comps2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedimport_edl2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedimport_fcp_xml2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedimport_folder2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedimport_image_sequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedimport_media2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedimport_mogrt3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / duration_seconds / description
        Previous value: -"Duration in seconds (default: 5)"New value: +"Duration in seconds (default: 5). Applied after import by moving the graphic's end and read back; a duration that would overlap the next clip on the track is not applied."
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedimport_mogrt_from_library2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedimport_sequences2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinsert_from_source2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_after_effects_render_templates1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_after_effects_template_source1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_cmx3600_edl2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_dom_object2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_edit_readiness2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_fcpxml_interchange2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_film_editorial_workflow1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_media_streams2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_mogrt_library1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_project_item_av_metadata2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_project_recovery1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_sequence_av_settings1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_sequence_review_report2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinspect_stabilizer_status1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedinvert_selection1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedis_work_area_enabled2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlift_selection1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlink_selection1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_available_audio_effects1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_available_audio_transitions1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_available_effects1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_available_transitions1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_clip_effects2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_markers2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_project_items2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_sequence_checkpoints1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_sequence_tracks2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedlist_sequences1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Addedlist_stock_titles
    • Changedlock_track2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmanage_media_watch1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmanage_project_context2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmanage_proxies2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmatch_frame2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmove_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmove_clip_to_track2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmove_item_to_bin2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmove_items_to_bin2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmove_playhead_to_edit2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmultiple_undo3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / expected_undo_stack_index
        Added value: +{
        +  "description": "Optional safety guard: the undoStackIndex a tool result reported right after the call you want to reverse. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. This compares the position only: if actions were undone and new ones recorded since, the position can match again and undo would reverse the newer action.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedmute_track2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changednavigate_playhead1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changednest_clips2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changednormalize_loudness_file2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedopen_in_source2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedopen_project2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedoverwrite_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedoverwrite_from_source2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpaste_clip_attributes1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedping1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_active_speaker_reframe1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_beat_montage1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_chapter_markers1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_client_notes_checklist1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_cross_app_workflow1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_emphasis_zoom_keyframes1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_filler_word_removal1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_multicam_angle_switches1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_pause_tightening1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_platform_delivery_matrix1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_reaction_captions3 fields changed
      • addedInput schema / properties / max_cue_chars
        Added value: +{
        +  "description": "Longest caption text before a cue is split at a word boundary; defaults to 84 (two 42-character lines).",
        +  "maximum": 400,
        +  "minimum": 16,
        +  "type": "integer"
        +}
      • addedInput schema / properties / max_cue_seconds
        Added value: +{
        +  "description": "Longest time one caption stays up before it is split; defaults to 6.",
        +  "maximum": 30,
        +  "minimum": 1,
        +  "type": "number"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_short_export_folder1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_short_subscribe_cta1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_shot_match2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_silence_review_markers1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_speaker_checkerboard1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplan_word_mute_ranges1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplay_source_monitor2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedplay_timeline1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_after_effects_render1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_after_effects_render_handoff2 fields changed
      • changedInput schema / properties / premiere_project_path / description
        Previous value: -"Exact open, saved Premiere project path."New value: +"Exact open, saved Premiere project path. It may be outside approved_workspace_path: it is only compared with the project Premiere has open."
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_brand_spot1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_edit_plan5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / plan / description
        Previous value: -"An edit plan containing insert_clip and remove_clip operations (maximum 100)"New value: +"An edit plan: { sequence_id?, operations: [...] } with up to 100 insert_clip and remove_clip operations. Operations run in order, and each one's times refer to the timeline as the operations before it left it."
      • addedInput schema / properties / plan / properties
        Added value: +{
        +  "operations": {
        +    "items": {
        +      "properties": {
        +        "audio_track_index": {
        +          "description": "insert_clip: audio track (default 0)",
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "include_linked": {
        +          "description": "remove_clip without ripple: also remove linked audio/video partners (default true)",
        +          "type": "boolean"
        +        },
        +        "item_id": {
        +          "description": "insert_clip: project item node ID or name",
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "description": "remove_clip: timeline clip node ID",
        +          "type": "string"
        +        },
        +        "ripple": {
        +          "description": "remove_clip: close the gap with a verified sync-locked ripple delete (always takes linked partners)",
        +          "type": "boolean"
        +        },
        +        "start_seconds": {
        +          "description": "insert_clip: timeline insert time in seconds (insert edit, sync-locked tracks shift)",
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "type": {
        +          "enum": [
        +            "insert_clip",
        +            "remove_clip"
        +          ],
        +          "type": "string"
        +        },
        +        "video_track_index": {
        +          "description": "insert_clip: video track (default 0)",
        +          "minimum": 0,
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "type"
        +      ],
        +      "type": "object"
        +    },
        +    "maxItems": 100,
        +    "minItems": 1,
        +    "type": "array"
        +  },
        +  "sequence_id": {
        +    "description": "Sequence name or ID to edit (activated first); defaults to the active sequence",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / plan / required
        Added value: +[
        +  "operations"
        +]
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_editorial_plan1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_mogrt_batch3 fields changed
      • addedInput schema / properties / brand_kit / properties / font_family / description
        Added value: +"PostScript font name for the template text (for example Halogen-Bold). Use a font from Adobe Fonts: After Effects will not export a template with other fonts unattended."
      • addedInput schema / properties / brand_kit / properties / safe_margin_percent / description
        Added value: +"Title-safe margin: 2-25 (percent) or 0.02-0.25 (fraction of the frame); default 10%."
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_mogrt_library_publish1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_mogrt_premiere_handoff1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_mogrt_recipe3 fields changed
      • addedInput schema / properties / brand_kit / properties / font_family / description
        Added value: +"PostScript font name for the template text (for example Halogen-Bold). Use a font from Adobe Fonts: After Effects will not export a template with other fonts unattended."
      • addedInput schema / properties / brand_kit / properties / safe_margin_percent / description
        Added value: +"Title-safe margin: 2-25 (percent) or 0.02-0.25 (fraction of the frame); default 10%."
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_motion_graphics_demo1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_product_spot1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_project_intake1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_watched_media_import1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpreview_workflow_recipe1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedpublish_mogrt_to_library1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedrank_short_form_candidates1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedrazor_all_tracks2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedread_sequence_captions1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedread_video_scopes2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedredo3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "count": {
        +    "description": "Number of redo steps (default: 1)",
        +    "type": "number"
        +  },
        +  "expected_undo_stack_index": {
        +    "description": "Optional safety guard: the undoStackIndexAfter reported by the undo you want to redo. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. This compares the position only: if other actions were undone and redone, or new ones recorded, since, the position can match again and redo would re-apply a different action than the one you undid (a new action also clears Premiere's redo history).",
        +    "type": "number"
        +  }
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedrefresh_media2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedrelink_media2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedremove_all_effects2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedremove_effect2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedremove_effect_by_name2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedremove_from_timeline3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / include_linked
        Added value: +{
        +  "description": "Also remove the clip's linked audio/video partners (default: true). A ripple removal always includes them, since closing the gap on one side only would desync the timeline.",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedremove_keyframe2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedremove_keyframe_range2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedremove_selected_clips2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedrename_bin2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedrename_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedrename_project_item2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedrename_track2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedreplace_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedreplace_clip_media2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedreverse_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedripple_delete3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / range_content / description
        Previous value: -"What to do about clips on OTHER participating tracks that sit entirely inside the time range being closed (the usual case in a multicam-style sequence with aligned clips). 'refuse' (default) changes nothing and reports them; 'delete' also removes them, i.e. lifts that whole time segment out of every participating track and closes up. 'delete' is destructive across tracks -- the removed clips are listed in the result."New value: +"What to do about other clips on participating tracks that sit entirely inside the time range being closed (the usual case in a multicam-style sequence with aligned clips). With scope 'sync_locked' the clip's own linked audio/video partners are always removed with it, as in Premiere; with 'own_track' they are kept. 'refuse' (default) changes nothing and reports them; 'delete' also removes them, i.e. lifts that whole time segment out of every participating track and closes up. 'delete' is destructive across tracks -- the removed clips are listed in the result."
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedroll_edit3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / include_linked
        Added value: +{
        +  "description": "Also apply the edit to the clip's linked audio/video partners so picture and sound stay in sync (default: true).",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedsave_project1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedsave_project_as2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedscene_edit_detection2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedsearch_project_context2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedsearch_project_items2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedsearch_workflow_recipes1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedselect_all_clips2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedselect_clips_by_color2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedselect_clips_by_name2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedselect_clips_by_pattern1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedselect_clips_in_range2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedselect_disabled_clips1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedselect_item2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_active_sequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_all_tracks_targeted2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_anti_alias_quality2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_blend_mode2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_anchor_point2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_duration3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / include_linked
        Added value: +{
        +  "description": "Also apply the edit to the clip's linked audio/video partners, as Premiere does with linked selection (default: true).",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_opacity2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_pan2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_position4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / x / description
        Previous value: -"X position in pixels"New value: +"X position in sequence pixels (converted to Premiere's normalized Position when the host stores it that way)"
      • changedInput schema / properties / y / description
        Previous value: -"Y position in pixels"New value: +"Y position in sequence pixels (converted to Premiere's normalized Position when the host stores it that way)"
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_properties4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / position_x / description
        Previous value: -"Horizontal position"New value: +"Horizontal position in sequence pixels"
      • changedInput schema / properties / position_y / description
        Previous value: -"Vertical position"New value: +"Vertical position in sequence pixels"
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_properties_batch1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_rotation2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_scale2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_selection2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_speed_qe2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_start_time2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clip_volume2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_clips_volume2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_color_label2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_color_value2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_effect_property2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_footage_interpretation2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_frame_blend2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_graphics_white_luminance2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_item_in_out2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_keyframe_interpolation2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_metadata2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_offline2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_override_frame_rate2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_override_pixel_aspect_ratio2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_playhead_position2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_poster_frame2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_project_item_audio_channel_mapping2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_project_panel_metadata2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_project_scratch_disk3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / save_and_verify
        Added value: +{
        +  "description": "Save the project afterwards and confirm the saved scratch-disk settings (default: false). Premiere has no scratch-disk getter, so without this the result is unverified.",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_scale_to_frame_size2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_scale_width_height4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / scale_height / description
        Previous value: -"Scale height percentage"New value: +"Scale height percentage (0-10000). Written to Motion > Scale, which is the height when Uniform Scale is off."
      • changedInput schema / properties / scale_width / description
        Previous value: -"Scale width percentage"New value: +"Scale width percentage (0-10000)"
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_scratch_disk_path6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / path / description
        Previous value: -"Full directory path for the scratch disk"New value: +"Absolute path of an existing folder, or \"SameAsProject\""
      • addedInput schema / properties / save_and_verify
        Added value: +{
        +  "description": "Save the project afterwards and confirm the saved scratch-disk settings (default: false). Premiere has no scratch-disk getter, so without this the result is unverified.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / scratch_disk_type / description
        Previous value: -"Type: 'capturedVideo', 'capturedAudio', 'videoPreview', 'audioPreview', 'autoSave', 'ccLibraries'"New value: +"Which scratch disk to set"
      • addedInput schema / properties / scratch_disk_type / enum
        Added value: +[
        +  "capturedVideo",
        +  "capturedAudio",
        +  "videoPreview",
        +  "audioPreview",
        +  "autoSave",
        +  "ccLibraries",
        +  "motionGraphicsTemplateMedia"
        +]
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_sequence_audio_settings2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_sequence_display_format2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_sequence_field_type2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_sequence_frame_rate2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_sequence_in_out_points2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_sequence_pixel_aspect_ratio2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_sequence_resolution2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_sequence_settings2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_source_in_out2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_start_time2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_target_track2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_time_interpolation2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_transcode_on_ingest2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_uniform_scale2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_work_area2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_workspace2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_xmp_metadata2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedset_zero_point2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedsetup_ducking1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedslide_edit3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / include_linked
        Added value: +{
        +  "description": "Also apply the edit to the clip's linked audio/video partners so picture and sound stay in sync (default: true).",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedslip_edit3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / include_linked
        Added value: +{
        +  "description": "Also apply the edit to the clip's linked audio/video partners so picture and sound stay in sync (default: true).",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedspeed_change2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedsplit_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedstabilize_clip2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedstart_batch_encode1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedstop_playback3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties
        Added value: +{
        +  "target": {
        +    "description": "What to stop. Default \"timeline\". \"source\" is refused because no documented API stops only the Source Monitor.",
        +    "enum": [
        +      "timeline",
        +      "source"
        +    ],
        +    "type": "string"
        +  }
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedtoggle_track_visibility2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedtrim_clip3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / include_linked
        Added value: +{
        +  "description": "Also apply the edit to the clip's linked audio/video partners, as Premiere does with linked selection (default: true).",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedundo3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / expected_undo_stack_index
        Added value: +{
        +  "description": "Optional safety guard: the undoStackIndex a tool result reported right after the call you want to reverse. The step is refused, with nothing changed, when Premiere's undo-stack position differs from it. This compares the position only: if actions were undone and new ones recorded since, the position can match again and undo would reverse the newer action.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedunlink_selection1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedunnest_sequence2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedupdate_marker3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / color / description
        Previous value: -"New color index"New value: +"New color index (0=Green, 1=Red, 2=Purple, 3=Orange, 4=Yellow, 5=White, 6=Blue, 7=Cyan)"
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedvalidate_cmx3600_edl2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedvalidate_export_preset2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedvalidate_mogrt_brand_kit3 fields changed
      • addedInput schema / properties / brand_kit / properties / font_family / description
        Added value: +"PostScript font name for the template text (for example Halogen-Bold). Use a font from Adobe Fonts: After Effects will not export a template with other fonts unattended."
      • addedInput schema / properties / brand_kit / properties / safe_margin_percent / description
        Added value: +"Title-safe margin: 2-25 (percent) or 0.02-0.25 (fraction of the frame); default 10%."
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedvalidate_platform_publish_package1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedvalidate_project_for_export1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedverify_after_effects_connection1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedverify_delivery_conformance2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedverify_delivery_file2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedverify_fcpxml_media_references2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedverify_mogrt_artifact1 field changed
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
    • Changedverify_premiere_connection2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / data / description
        Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
  8. 2 tool updatesv1.18.2
    • Changedget_sequence_structure2 fields changed
      • addedInput schema / properties / sequence_id / maxLength
        Added value: +512
      • addedInput schema / properties / sequence_id / minLength
        Added value: +1
    • Changedinspect_dom_object3 fields changed
      • changedInput schema / properties / object_path / description
        Previous value: -"Dot-path to the DOM object to inspect (e.g., 'app.project.activeSequence')"New value: +"Property path starting with app or qe (e.g. 'app.project.activeSequence.videoTracks[0]'). Function calls and statements are rejected."
      • addedInput schema / properties / object_path / maxLength
        Added value: +512
      • addedInput schema / properties / object_path / minLength
        Added value: +1
  9. 12 tool updatesv1.18.0
    • Addedcompute_mask_fit_motion
    • Changedcreate_bin2 fields changed
      • changedInput schema / properties / parent_bin / description
        Previous value: -"Optional parent bin name or node ID. Creates in root if omitted."New value: +"Optional parent bin node ID, slash-separated bin path, or exact bin name. Alias of parent_bin_id that also accepts a path or name."
      • addedInput schema / properties / parent_bin_id
        Added value: +{
        +  "description": "Optional node ID of the existing parent bin (searched recursively through nested bins). Creates in the project root if both parent_bin_id and parent_bin are omitted.",
        +  "type": "string"
        +}
    • Changedget_mogrt_component1 field changed
      • addedInput schema / properties / expected_values
        Added value: +{
        +  "additionalProperties": {
        +    "type": "string"
        +  },
        +  "description": "Optional read-only audit map of MOGRT text parameter display names to the text each should contain (for example { \"Headline\": \"Chapter 3\" }). Result audit.status is verified, mismatch, or missing_property.",
        +  "type": "object"
        +}
    • Changedimport_mogrt1 field changed
      • addedInput schema / properties / text_values
        Added value: +{
        +  "additionalProperties": {
        +    "type": "string"
        +  },
        +  "description": "Optional map of MOGRT text parameter display names to the exact text to write (for example { \"Headline\": \"Chapter 3\" }). Each value is written explicitly after import and read back; the result reports verified, mismatch, missing_property, or committed_unverified per field.",
        +  "type": "object"
        +}
    • Changedmanage_proxies1 field changed
      • changedInput schema / properties / preset_path / description
        Previous value: -"Path to a proxy ingest preset (.epr) for 'create'. If omitted, the first preset found in Premiere's IngestPresets/Proxy folder is used."New value: +"Path to a proxy ingest preset (.epr) for 'create'. If omitted, the server lists Premiere's IngestPresets/Proxy presets and AME H.264 system presets, skips every preset whose output destination is Same as Project (Adobe's shipped proxy presets are), and uses the first remaining one. Fails with a clear error when none qualify."
    • Addedpaste_clip_attributes
    • Changedpreview_mogrt_recipe4 fields changed
      • changedInput schema / properties / headline / description
        Previous value: -"Primary lower-third text, at most 160 characters."New value: +"Primary headline text, at most 160 characters. Required for text recipes; optional caption for media_placeholder."
      • addedInput schema / properties / placeholder_media_path
        Added value: +{
        +  "description": "Required for media_placeholder: absolute workspace-contained PNG, JPEG, MOV, or MP4 placed as the swappable Essential Graphics media slot.",
        +  "type": "string"
        +}
      • changedInput schema / properties / recipe / enum
        Previous value: -[
        -  "lower_third",
        -  "title_card",
        -  "callout",
        -  "quote_card",
        -  "social_end_card"
        -]New value: +[
        +  "lower_third",
        +  "title_card",
        +  "callout",
        +  "quote_card",
        +  "social_end_card",
        +  "media_placeholder"
        +]
      • addedInput schema / properties / text_controls
        Added value: +{
        +  "description": "full (default) also exposes per-text-layer Font Size, Fill Color, Stroke Color, Stroke Width, Position, Scale, Rotation, Anchor Point, and Opacity controls; text_only exposes only the text strings.",
        +  "enum": [
        +    "full",
        +    "text_only"
        +  ],
        +  "type": "string"
        +}
    • Addedset_clip_duration
    • Changedset_clip_properties1 field changed
      • changedInput schema / properties / speed / description
        Previous value: -"Unsupported by Premiere's public scripting APIs. Supplying this returns an actionable error without mutating the clip."New value: +"Unsupported by Premiere's documented scripting APIs. Supplying this returns an actionable error without mutating the clip; use set_clip_duration to change timeline length."
    • Changedset_scale_to_frame_size1 field changed
      • changedInput schema / properties / item_id / description
        Previous value: -"Node ID or name of the project item"New value: +"Timeline clip node ID in the active sequence, or project item node ID or name"
    • Changedset_source_in_out5 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "in_seconds"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "out_seconds"
        +    ]
        +  }
        +]
      • changedInput schema / properties / in_seconds / description
        Previous value: -"In point in seconds (optional)"New value: +"In point in seconds. Provide this, out_seconds, or both."
      • addedInput schema / properties / in_seconds / minimum
        Added value: +0
      • changedInput schema / properties / out_seconds / description
        Previous value: -"Out point in seconds (optional)"New value: +"Out point in seconds. Provide this, in_seconds, or both."
      • addedInput schema / properties / out_seconds / minimum
        Added value: +0
    • Changedset_target_track1 field changed
      • addedInput schema / properties / exclusive
        Added value: +{
        +  "description": "When targeting (targeted=true), also untarget every other track of the same type so only this track is targeted (default: true). Ignored when targeted=false.",
        +  "type": "boolean"
        +}
  10. 2 tool updatesv1.16.3
    • Changedget_metadata4 fields changed
      • changedInput schema / properties / include_project_metadata / description
        Previous value: -"Include the potentially large Project Metadata XML payload (default: true). Set false for a bounded identity/path response."New value: +"Include the potentially large Project Metadata XML payload (default: true unless parse_fields is true)."
      • addedInput schema / properties / include_sensitive
        Added value: +{
        +  "description": "When parse_fields is true, include GPS, serials, and similar EXIF. Default false.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / include_xmp_metadata / description
        Previous value: -"Include the potentially large XMP XML payload (default: true). Set false for a bounded identity/path response."New value: +"Include the potentially large XMP XML payload (default: true unless parse_fields is true)."
      • addedInput schema / properties / parse_fields
        Added value: +{
        +  "description": "Parse project metadata and XMP into named fields (default false). When true, raw XML is omitted unless include_project_metadata or include_xmp_metadata is explicitly true.",
        +  "type": "boolean"
        +}
    • Changedset_metadata5 fields changed
      • addedInput schema / properties / expected_value
        Added value: +{
        +  "description": "Optional compare-and-set guard for field_name writes.",
        +  "type": "string"
        +}
      • changedInput schema / properties / field_name / description
        Previous value: -"Legacy partial-write argument. It is no longer executed because it cannot form a valid Project Metadata XML payload; use metadata_xml and updated_fields instead."New value: +"Named field to update (for example Column.Intrinsic.LogNote). Used with value; cannot be combined with metadata_xml."
      • addedInput schema / properties / field_namespace
        Added value: +{
        +  "description": "XMP namespace URI or alias (premiere, dc, xmp, exif). Default premiere for project packet; required for xmp.",
        +  "type": "string"
        +}
      • addedInput schema / properties / packet
        Added value: +{
        +  "description": "Packet for field_name writes. Default project (Premiere-private metadata).",
        +  "enum": [
        +    "project",
        +    "xmp"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / value / description
        Previous value: -"Legacy partial-write argument. It is no longer executed; read projectMetadata first, update the complete XML, then supply metadata_xml and updated_fields."New value: +"Replacement value for field_name. Maximum 4096 characters."
  11. 11 tool updatesv1.16.1
    • Addedadd_markers_batch
    • Changedadd_to_timeline1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "description": "Which tracks shift: 'sync_locked' (default) matches Premiere's insert; 'target_tracks' ripples only the named pair and WILL desync other tracks.",
        +  "enum": [
        +    "sync_locked",
        +    "target_tracks"
        +  ],
        +  "type": "string"
        +}
    • Addedcreate_sequence_checkpoint
    • Addedexport_sequence_edl
    • Changedinsert_from_source1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "description": "Which tracks shift: 'sync_locked' (default) matches Premiere's insert and keeps sync-locked tracks in sync; 'target_tracks' ripples only the named pair and WILL desync other tracks.",
        +  "enum": [
        +    "sync_locked",
        +    "target_tracks"
        +  ],
        +  "type": "string"
        +}
    • Addedlist_sequence_checkpoints
    • Addednavigate_playhead
    • Addedplan_client_notes_checklist
    • Addedplan_multicam_angle_switches
    • Changedripple_delete3 fields changed
      • addedInput schema / properties / dry_run
        Added value: +{
        +  "description": "Validate and report the shift plan without changing the timeline (default: false)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / range_content
        Added value: +{
        +  "description": "What to do about clips on OTHER participating tracks that sit entirely inside the time range being closed (the usual case in a multicam-style sequence with aligned clips). 'refuse' (default) changes nothing and reports them; 'delete' also removes them, i.e. lifts that whole time segment out of every participating track and closes up. 'delete' is destructive across tracks -- the removed clips are listed in the result.",
        +  "enum": [
        +    "refuse",
        +    "delete"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / scope
        Added value: +{
        +  "description": "Which tracks shift: 'sync_locked' (default) shifts the clip's track plus every sync-locked track, matching Premiere's ripple behaviour; 'own_track' shifts only the clip's own track and WILL desync other tracks.",
        +  "enum": [
        +    "sync_locked",
        +    "own_track"
        +  ],
        +  "type": "string"
        +}
    • Addedselect_clips_by_pattern
  12. 16 tool updatesv1.16.0
    • Changedadd_to_render_queue2 fields changed
      • changedInput schema / properties / preset_path / description
        Previous value: -"Path to an AME preset file (.epr)"New value: +"Required path to an AME preset file (.epr). Omitting this raises an Illegal Parameter error on current Premiere hosts."
      • changedInput schema / required
        Previous value: -[
        -  "output_path"
        -]New value: +[
        +  "output_path",
        +  "preset_path"
        +]
    • Changedbuild_caption_artifact1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Changeddetect_repeated_takes1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Addedget_caption_style_guidance
    • Changedplan_active_speaker_reframe1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Changedplan_chapter_markers1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Changedplan_emphasis_zoom_keyframes1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Changedplan_filler_word_removal1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Changedplan_pause_tightening1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Addedplan_reaction_captions
    • Addedplan_short_export_folder
    • Addedplan_short_subscribe_cta
    • Changedplan_speaker_checkerboard1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Changedplan_word_mute_ranges1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Changedrank_short_form_candidates1 field changed
      • changedInput schema / properties / word_timeline / description
        Previous value: -"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp."New value: +"Caller-supplied word-timed transcript for one Premiere source item. Words must be ordered by start time and bound to the transcript revision returned by get_clip_transcript_uxp. Different labeled speakers may overlap; same-speaker words may not, even when another speaker is between them."
    • Changedset_effect_property3 fields changed
      • addedInput schema / properties / value / additionalProperties
        Added value: +true
      • changedInput schema / properties / value / description
        Previous value: -"Value to set. Use a number for scalar properties, an array of numbers for vector properties such as Motion > Position or Anchor Point ([x, y]), a boolean for checkbox properties, or the exact JSON string reported for a MOGRT text or graphic parameter."New value: +"Value to set. Use a number for scalar properties, an array of numbers for vector properties such as Motion > Position or Anchor Point ([x, y]), a boolean for checkbox properties, the exact JSON string reported for a MOGRT text or graphic parameter, or that same JSON object if the client parsed it."
      • changedInput schema / properties / value / type
        Previous value: -[
        -  "number",
        -  "string",
        -  "boolean",
        -  "array"
        -]New value: +[
        +  "number",
        +  "string",
        +  "boolean",
        +  "array",
        +  "object"
        +]
  13. 131 tool updatesv1.14.9
    • Changedadd_audio_keyframes1 field changed
      • removedInput schema / properties / keyframes / items / additionalProperties
        Removed value: -{}
    • Changedadd_text_overlay1 field changed
      • changedInput schema / properties / caption_format / enum
        Previous value: -[
        -  "608",
        -  "708",
        -  "subtitle",
        -  "teletext"
        -]New value: +[
        +  "subtitle",
        +  "608",
        +  "708",
        +  "teletext"
        +]
    • Changedadd_to_timeline_batch11 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / clips / items / additionalProperties
        Previous value: -{}New value: +false
      • addedInput schema / properties / clips / items / properties / audio_track_index / minimum
        Added value: +0
      • addedInput schema / properties / clips / items / properties / audio_track_index / type
        Added value: +"integer"
      • addedInput schema / properties / clips / items / properties / item_id / maxLength
        Added value: +512
      • addedInput schema / properties / clips / items / properties / item_id / minLength
        Added value: +1
      • addedInput schema / properties / clips / items / properties / start_seconds / minimum
        Added value: +0
      • addedInput schema / properties / clips / items / properties / track_index / minimum
        Added value: +0
      • addedInput schema / properties / clips / items / properties / track_index / type
        Added value: +"integer"
      • addedInput schema / properties / clips / maxItems
        Added value: +32
      • addedInput schema / properties / clips / minItems
        Added value: +1
    • Addedanalyze_dialogue_edit_candidates
    • Addedapply_after_effects_render_handoff
    • Changedapply_edit_plan2 fields changed
      • removedInput schema / properties / plan / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / plan / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
    • Addedapply_mogrt_premiere_handoff
    • Changedapply_spot_workflow_plan3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / plan / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / plan / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
    • Addedaudit_timeline_health
    • Addedbuild_caption_artifact
    • Addedcheck_caption_safe_zone
    • Changedcheck_offline_media1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedclose_all_source_clips1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedclose_source_monitor1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedconsolidate_duplicates1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedcreate_caption_track15 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / action
        Added value: +{
        +  "default": "import",
        +  "description": "Use import (the default) to create a Premiere caption track, or plan_lecture_workflow for a read-only SRT/VTT timing and review plan.",
        +  "enum": [
        +    "import",
        +    "plan_lecture_workflow"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / allow_proportional_scaling
        Added value: +{
        +  "description": "For plan_lecture_workflow, explicitly permit a bounded timing-scale preview when the artifact end does not match target_duration_seconds. This still never rewrites a caption artifact.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / artifact_format
        Added value: +{
        +  "description": "For plan_lecture_workflow, the syntax of caption_content. VTT content must include its WEBVTT header.",
        +  "enum": [
        +    "srt",
        +    "vtt"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / caption_content
        Added value: +{
        +  "description": "For plan_lecture_workflow, the caller-owned SRT or VTT content to parse locally. The returned plan contains no caption text and does not write this artifact.",
        +  "maxLength": 750000,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / caption_format / description
        Previous value: -"Caption format: 'subtitle' (default), '608', '708', 'teletext', 'ebu', 'op42', 'op47'"New value: +"For action import, Premiere caption format: subtitle (default), 608, 708, teletext, ebu, op42, or op47."
      • changedInput schema / properties / item_id / description
        Previous value: -"Node ID or name of the imported caption project item (e.g., an .srt file)"New value: +"For action import, the node ID or name of the imported caption project item (for example, an SRT file). Omit for plan_lecture_workflow."
      • addedInput schema / properties / item_id / maxLength
        Added value: +512
      • addedInput schema / properties / observed_offset_seconds
        Added value: +{
        +  "description": "For plan_lecture_workflow, an editor-observed constant offset in seconds. Positive means captions currently appear later than intended; the preview proposes the inverse shift when safe.",
        +  "maximum": 86400,
        +  "minimum": -86400,
        +  "type": "number"
        +}
      • changedInput schema / properties / start_seconds / description
        Previous value: -"Offset in seconds from the start of the sequence (default: 0)"New value: +"For action import, offset in seconds from the start of the sequence (default: 0)."
      • addedInput schema / properties / start_seconds / maximum
        Added value: +604800
      • addedInput schema / properties / start_seconds / minimum
        Added value: +0
      • addedInput schema / properties / target_duration_seconds
        Added value: +{
        +  "description": "For plan_lecture_workflow, optional intended sequence duration. A mismatch requires review unless proportional scaling is explicitly authorized.",
        +  "maximum": 604800,
        +  "minimum": 0.001,
        +  "type": "number"
        +}
      • addedInput schema / properties / timing_tolerance_seconds
        Added value: +{
        +  "description": "For plan_lecture_workflow, tolerance used to classify an offset or duration mismatch (default: 0.25 seconds).",
        +  "maximum": 10,
        +  "minimum": 0.001,
        +  "type": "number"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "item_id"
        -]
    • Addedcreate_editorial_context_pack
    • Changedcreate_editorial_plan34 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / intent / maxLength
        Added value: +1000
      • addedInput schema / properties / intent / minLength
        Added value: +1
      • addedInput schema / properties / max_candidates / maximum
        Added value: +32
      • addedInput schema / properties / max_candidates / minimum
        Added value: +1
      • addedInput schema / properties / max_candidates / type
        Added value: +"integer"
      • changedInput schema / properties / organization_rules / items / additionalProperties
        Previous value: -{}New value: +false
      • addedInput schema / properties / organization_rules / items / properties / color_index / maximum
        Added value: +14
      • addedInput schema / properties / organization_rules / items / properties / color_index / minimum
        Added value: +0
      • addedInput schema / properties / organization_rules / items / properties / color_index / type
        Added value: +"integer"
      • addedInput schema / properties / organization_rules / items / properties / keywords / items / maxLength
        Added value: +512
      • addedInput schema / properties / organization_rules / items / properties / keywords / items / minLength
        Added value: +1
      • addedInput schema / properties / organization_rules / items / properties / keywords / maxItems
        Added value: +64
      • addedInput schema / properties / organization_rules / items / properties / keywords / minItems
        Added value: +1
      • addedInput schema / properties / organization_rules / items / properties / name / maxLength
        Added value: +255
      • addedInput schema / properties / organization_rules / items / properties / name / minLength
        Added value: +1
      • addedInput schema / properties / organization_rules / maxItems
        Added value: +16
      • changedInput schema / properties / platform_targets / items / additionalProperties
        Previous value: -{}New value: +false
      • addedInput schema / properties / platform_targets / items / properties / height / maximum
        Added value: +8192
      • addedInput schema / properties / platform_targets / items / properties / height / minimum
        Added value: +16
      • addedInput schema / properties / platform_targets / items / properties / height / type
        Added value: +"integer"
      • addedInput schema / properties / platform_targets / items / properties / name / maxLength
        Added value: +64
      • addedInput schema / properties / platform_targets / items / properties / name / minLength
        Added value: +1
      • addedInput schema / properties / platform_targets / items / properties / sequence_name / maxLength
        Added value: +255
      • addedInput schema / properties / platform_targets / items / properties / sequence_name / minLength
        Added value: +1
      • addedInput schema / properties / platform_targets / items / properties / width / maximum
        Added value: +8192
      • addedInput schema / properties / platform_targets / items / properties / width / minimum
        Added value: +16
      • addedInput schema / properties / platform_targets / items / properties / width / type
        Added value: +"integer"
      • addedInput schema / properties / platform_targets / maxItems
        Added value: +8
      • addedInput schema / properties / platform_targets / minItems
        Added value: +1
      • addedInput schema / properties / project_id / maxLength
        Added value: +512
      • addedInput schema / properties / project_id / minLength
        Added value: +1
      • addedInput schema / properties / sequence_id / maxLength
        Added value: +128
      • addedInput schema / properties / sequence_id / minLength
        Added value: +1
    • Addedcreate_mogrt_batch
    • Addedcreate_mogrt_recipe
    • Changedcrop_clip13 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / bottom / maximum
        Added value: +100
      • addedInput schema / properties / bottom / minimum
        Added value: +0
      • addedInput schema / properties / edge_feather / maximum
        Added value: +100
      • addedInput schema / properties / edge_feather / minimum
        Added value: +0
      • addedInput schema / properties / left / maximum
        Added value: +100
      • addedInput schema / properties / left / minimum
        Added value: +0
      • addedInput schema / properties / node_id / maxLength
        Added value: +512
      • addedInput schema / properties / node_id / minLength
        Added value: +1
      • addedInput schema / properties / right / maximum
        Added value: +100
      • addedInput schema / properties / right / minimum
        Added value: +0
      • addedInput schema / properties / top / maximum
        Added value: +100
      • addedInput schema / properties / top / minimum
        Added value: +0
    • Changeddeselect_all_clips1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changeddetect_active_picture_bounds1 field changed
      • addedInput schema / properties / limit / type
        Added value: +"integer"
    • Changeddetect_audio_transients1 field changed
      • addedInput schema / properties / maximum_events / type
        Added value: +"integer"
    • Changeddetect_beats4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / max_beats / maximum
        Added value: +2000
      • addedInput schema / properties / max_beats / minimum
        Added value: +1
      • addedInput schema / properties / max_beats / type
        Added value: +"integer"
    • Changeddetect_motion_peaks1 field changed
      • addedInput schema / properties / maximum_events / type
        Added value: +"integer"
    • Addeddetect_repeated_takes
    • Changeddetect_scene_edits2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / operation_id / pattern
        Added value: +"^[A-Za-z0-9._:-]{1,128}$"
    • Addeddiff_sequence_snapshots
    • Addedenqueue_after_effects_render
    • Changedexport_sequence_marker_review_frames1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedextract_selection1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedgenerate_media_contact_sheet3 fields changed
      • addedInput schema / properties / columns / type
        Added value: +"integer"
      • addedInput schema / properties / rows / type
        Added value: +"integer"
      • addedInput schema / properties / thumbnail_width / type
        Added value: +"integer"
    • Changedget_active_sequence1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_all_project_paths1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_av_feature_support1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_bin_contents8 fields changed
      • addedInput schema / properties / limit / maximum
        Added value: +500
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / limit / type
        Added value: +"integer"
      • addedInput schema / properties / max_depth / maximum
        Added value: +10
      • addedInput schema / properties / max_depth / minimum
        Added value: +0
      • addedInput schema / properties / max_depth / type
        Added value: +"integer"
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • addedInput schema / properties / offset / type
        Added value: +"integer"
    • Changedget_bridge_telemetry1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_capabilities13 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / available_only
        Added value: +{
        +  "description": "Filter to tools registered under this session's authority and tool packs. Defaults to true for tool_query, false otherwise. Set false to diagnose unavailable matches; this does not enable them.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / tool_limit / maximum
        Added value: +128
      • addedInput schema / properties / tool_limit / minimum
        Added value: +1
      • addedInput schema / properties / tool_limit / type
        Added value: +"integer"
      • addedInput schema / properties / tool_names / items / maxLength
        Added value: +256
      • addedInput schema / properties / tool_names / items / minLength
        Added value: +1
      • addedInput schema / properties / tool_names / maxItems
        Added value: +128
      • addedInput schema / properties / tool_names / minItems
        Added value: +1
      • addedInput schema / properties / tool_names / uniqueItems
        Added value: +true
      • addedInput schema / properties / tool_offset / minimum
        Added value: +0
      • addedInput schema / properties / tool_offset / type
        Added value: +"integer"
      • addedInput schema / properties / tool_query
        Added value: +{
        +  "description": "Optional case-insensitive keywords matched against tool names and descriptions. Exact names rank first. Search defaults to 20 results with descriptions and session availability; page with tool_offset/tool_limit.",
        +  "maxLength": 256,
        +  "minLength": 1,
        +  "pattern": "\\S",
        +  "type": "string"
        +}
    • Changedget_duplicate_media1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_full_project_overview9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / max_bin_depth / maximum
        Added value: +10
      • addedInput schema / properties / max_bin_depth / minimum
        Added value: +0
      • addedInput schema / properties / max_bin_depth / type
        Added value: +"integer"
      • addedInput schema / properties / sequence_limit / maximum
        Added value: +500
      • addedInput schema / properties / sequence_limit / minimum
        Added value: +1
      • addedInput schema / properties / sequence_limit / type
        Added value: +"integer"
      • addedInput schema / properties / sequence_offset / minimum
        Added value: +0
      • addedInput schema / properties / sequence_offset / type
        Added value: +"integer"
    • Changedget_graphics_white_luminance1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_insertion_bin1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_offline_media1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_playhead_position1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_premiere_state1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_project_info1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_project_panel_metadata1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_project_scratch_disks1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_render_queue_status1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_selected_clips1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_sequence_count1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_sequence_in_out_points1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_source_monitor_info1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_source_monitor_position1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_target_tracks1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_total_clip_count1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_unused_media1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_version_info1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_work_area1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedget_workspaces1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedimport_fcp_xml3 fields changed
      • changedInput schema / properties / path / description
        Previous value: -"Full path to the FCP XML file"New value: +"Full path to the FCP XML file to read"
      • addedInput schema / properties / project_path
        Added value: +{
        +  "description": "Full path of the new .prproj file Premiere should create for the imported timeline. Required: app.openFCPXML takes both a source and a destination path.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "path"
        -]New value: +[
        +  "path",
        +  "project_path"
        +]
    • Addedinspect_after_effects_render_templates
    • Addedinspect_after_effects_template_source
    • Addedinspect_film_editorial_workflow
    • Addedinspect_mogrt_library
    • Changedinspect_project_recovery1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedinspect_sequence_av_settings1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedinspect_stabilizer_status1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedinvert_selection1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedlift_selection1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedlink_selection1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedlist_available_audio_effects1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedlist_available_audio_transitions1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedlist_available_effects1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedlist_available_transitions1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedlist_sequences1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Addedmanage_media_watch
    • Changedmanage_project_context6 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Capture active context, enrich it, inspect status, or clear one local project index"New value: +"Capture active context, enrich it, import revision-bound editorial evidence, inspect status, or clear one local project index."
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "capture",
        -  "enrich",
        -  "status",
        -  "clear"
        -]New value: +[
        +  "capture",
        +  "enrich",
        +  "import_evidence",
        +  "status",
        +  "clear"
        +]
      • addedInput schema / properties / evidence
        Added value: +{
        +  "description": "For import_evidence, up to 512 caller-approved records with strict source/timeline revision guards. The server does not read referenced frame files, invoke analysis, or contact a provider.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "end_seconds": {
        +        "description": "Optional end in seconds at or after start_seconds.",
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "frame_reference_id": {
        +        "description": "For frame_reference, an opaque fixture or review-frame identifier, never a native file path or URL.",
        +        "maxLength": 256,
        +        "type": "string"
        +      },
        +      "id": {
        +        "description": "Optional stable evidence ID for deterministic replacement.",
        +        "maxLength": 256,
        +        "type": "string"
        +      },
        +      "keywords": {
        +        "description": "Optional local search keywords.",
        +        "items": {
        +          "description": "One local search keyword.",
        +          "maxLength": 256,
        +          "type": "string"
        +        },
        +        "maxItems": 64,
        +        "type": "array"
        +      },
        +      "metadata": {
        +        "description": "Optional small scalar metadata. Credential-like and path-like keys are discarded before local storage.",
        +        "type": "object"
        +      },
        +      "name": {
        +        "description": "Optional bounded display name for the local evidence record.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "sequence_id": {
        +        "description": "Optional captured sequence ID. Requires the exact current timeline_revision.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "source_id": {
        +        "description": "Optional captured source ID. Requires the exact current source_revision.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "source_revision": {
        +        "description": "Required exact source revision whenever source_id is supplied.",
        +        "maxLength": 256,
        +        "type": "string"
        +      },
        +      "speaker_label": {
        +        "description": "For transcript_passage or speaker_label, an editor-supplied speaker label. It is not inferred by this server.",
        +        "maxLength": 160,
        +        "type": "string"
        +      },
        +      "start_seconds": {
        +        "description": "Optional non-negative source or sequence start in seconds.",
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "text": {
        +        "description": "Caller-approved local evidence text. Required except for speaker_label and frame_reference, which can derive a bounded local note.",
        +        "maxLength": 20000,
        +        "type": "string"
        +      },
        +      "timeline_item_id": {
        +        "description": "Optional captured timeline item ID. Requires the exact current timeline_revision.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "timeline_revision": {
        +        "description": "Required exact timeline revision whenever sequence_id or timeline_item_id is supplied.",
        +        "maxLength": 256,
        +        "type": "string"
        +      },
        +      "track_index": {
        +        "description": "Optional recorded track index when the evidence is tied to a timeline item.",
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "track_type": {
        +        "description": "Optional recorded track type when the evidence is tied to a timeline item.",
        +        "enum": [
        +          "video",
        +          "audio"
        +        ],
        +        "type": "string"
        +      },
        +      "type": {
        +        "description": "Evidence shape: transcript passage, speaker label, shot log, audio observation, operator note, or an opaque frame reference.",
        +        "enum": [
        +          "transcript_passage",
        +          "speaker_label",
        +          "shot_log",
        +          "audio_observation",
        +          "operator_note",
        +          "frame_reference"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / records / items / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / records / items / properties / metadata / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / records / items / properties / metadata / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
    • Changedping1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Addedplan_active_speaker_reframe
    • Addedplan_beat_montage
    • Addedplan_chapter_markers
    • Addedplan_cross_app_workflow
    • Addedplan_emphasis_zoom_keyframes
    • Addedplan_filler_word_removal
    • Addedplan_pause_tightening
    • Addedplan_platform_delivery_matrix
    • Changedplan_silence_review_markers1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedplan_speaker_checkerboard
    • Addedplan_word_mute_ranges
    • Changedplay_timeline1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Addedpreview_after_effects_render
    • Addedpreview_after_effects_render_handoff
    • Changedpreview_brand_spot1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedpreview_edit_plan2 fields changed
      • removedInput schema / properties / plan / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / plan / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
    • Changedpreview_editorial_plan3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / plan / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / plan / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
    • Addedpreview_mogrt_batch
    • Addedpreview_mogrt_library_publish
    • Addedpreview_mogrt_premiere_handoff
    • Addedpreview_mogrt_recipe
    • Changedpreview_motion_graphics_demo1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedpreview_product_spot1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedpreview_project_intake6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / max_items / maximum
        Added value: +2000
      • addedInput schema / properties / max_items / minimum
        Added value: +1
      • addedInput schema / properties / max_items / type
        Added value: +"integer"
      • removedInput schema / properties / template / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / template / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
    • Addedpreview_watched_media_import
    • Addedpreview_workflow_recipe
    • Addedpublish_mogrt_to_library
    • Addedrank_short_form_candidates
    • Changedread_sequence_captions3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / sequence_id / maxLength
        Added value: +512
      • addedInput schema / properties / sequence_id / minLength
        Added value: +1
    • Changedredo1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedremove_effect1 field changed
      • addedInput schema / properties / effect_index / minimum
        Added value: +0
    • Changedsave_project1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedsearch_project_context3 fields changed
      • addedInput schema / properties / max_results / maximum
        Added value: +50
      • addedInput schema / properties / max_results / minimum
        Added value: +1
      • changedInput schema / properties / max_results / type
        Previous value: -"number"New value: +"integer"
    • Addedsearch_workflow_recipes
    • Changedselect_disabled_clips1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedset_clip_properties_batch9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / items / items / additionalProperties
        Previous value: -{}New value: +false
      • addedInput schema / properties / items / items / properties / node_id / maxLength
        Added value: +512
      • addedInput schema / properties / items / items / properties / node_id / minLength
        Added value: +1
      • addedInput schema / properties / items / items / properties / opacity / maximum
        Added value: +100
      • addedInput schema / properties / items / items / properties / opacity / minimum
        Added value: +0
      • addedInput schema / properties / items / items / properties / scale / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / items / maxItems
        Added value: +16
      • addedInput schema / properties / items / minItems
        Added value: +1
    • Changedset_effect_property6 fields changed
      • changedInput schema / properties / value / description
        Previous value: -"Number or string value to set. Use the exact JSON string reported for a MOGRT text or graphic parameter."New value: +"Value to set. Use a number for scalar properties, an array of numbers for vector properties such as Motion > Position or Anchor Point ([x, y]), a boolean for checkbox properties, or the exact JSON string reported for a MOGRT text or graphic parameter."
      • addedInput schema / properties / value / items
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / value / maxItems
        Added value: +4
      • addedInput schema / properties / value / maxLength
        Added value: +8192
      • addedInput schema / properties / value / minItems
        Added value: +1
      • addedInput schema / properties / value / type
        Added value: +[
        +  "number",
        +  "string",
        +  "boolean",
        +  "array"
        +]
    • Changedset_metadata1 field changed
      • addedInput schema / properties / updated_fields / minItems
        Added value: +1
    • Changedset_sequence_frame_rate2 fields changed
      • addedInput schema / properties / frame_rate / maximum
        Added value: +240
      • addedInput schema / properties / frame_rate / minimum
        Added value: +1
    • Changedsetup_ducking9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / ducking_windows / items / additionalProperties
        Previous value: -{}New value: +false
      • addedInput schema / properties / ducking_windows / items / properties / end_seconds / minimum
        Added value: +0
      • addedInput schema / properties / ducking_windows / items / properties / start_seconds / minimum
        Added value: +0
      • addedInput schema / properties / ducking_windows / maxItems
        Added value: +32
      • addedInput schema / properties / ducking_windows / minItems
        Added value: +0
      • addedInput schema / properties / fade_seconds / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / node_id / maxLength
        Added value: +512
      • addedInput schema / properties / node_id / minLength
        Added value: +1
    • Changedsplit_clip2 fields changed
      • addedInput schema / properties / time_seconds / minimum
        Added value: +0
      • addedInput schema / properties / track_index / minimum
        Added value: +0
    • Changedstart_batch_encode1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedstop_playback1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Changedtrim_clip2 fields changed
      • addedInput schema / properties / new_in_seconds / minimum
        Added value: +0
      • addedInput schema / properties / new_out_seconds / minimum
        Added value: +0
    • Changedunlink_selection1 field changed
      • removedInput schema / properties
        Removed value: -{}
    • Addedvalidate_mogrt_brand_kit
    • Addedvalidate_platform_publish_package
    • Changedvalidate_project_for_export7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / output_path / maxLength
        Added value: +4096
      • addedInput schema / properties / output_path / minLength
        Added value: +1
      • addedInput schema / properties / preset_path / maxLength
        Added value: +4096
      • addedInput schema / properties / preset_path / minLength
        Added value: +1
      • addedInput schema / properties / sequence_id / maxLength
        Added value: +512
      • addedInput schema / properties / sequence_id / minLength
        Added value: +1
    • Addedverify_after_effects_connection
    • Addedverify_delivery_conformance
    • Addedverify_mogrt_artifact
  14. 5 tool updatesv1.14.5
    • Addeddetect_beats
    • Addeddetect_motion_peaks
    • Addedinspect_stabilizer_status
    • Addedplan_shot_match
    • Addedread_video_scopes
  15. 319 tool updatesv1.14.4
    • Changedadd_adjustment_layer2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_audio_keyframes2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_custom_metadata_field2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_keyframe2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_marker2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_marker_to_project_item2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_text_overlay2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_to_render_queue2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_to_timeline2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedadd_to_timeline_batch
    • Changedadd_track2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_tracks2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_transition2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadd_transition_to_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedadjust_audio_levels2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedanalyze_loudness
    • Addedanalyze_video_interlacing
    • Addedanalyze_video_qc
    • Changedapply_audio_effect2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedapply_edit_plan2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedapply_effect2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedapply_lut2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedapply_spot_workflow_plan
    • Changedattach_custom_property2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedauto_reframe_sequence5 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / motion_preset
        Added value: +{
        +  "description": "Premiere Auto Reframe motion preset (default: default)",
        +  "enum": [
        +    "slower",
        +    "default",
        +    "faster"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / new_name
        Added value: +{
        +  "description": "Name for the newly created auto-reframed sequence",
        +  "type": "string"
        +}
      • addedInput schema / properties / use_nested_sequences
        Added value: +{
        +  "description": "Whether Auto Reframe should honor nested sequences (default: false)",
        +  "type": "boolean"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedbatch_add_transitions2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedbatch_apply_effect2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedbatch_enable_disable2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedbatch_rename_clips3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / pattern / description
        Previous value: -"Name pattern. Use {n} for sequential number, {name} for original name (e.g., 'Scene_{n}', '{name}_v2')"New value: +"Name pattern. Use {n} for a sequential number, ## for a zero-padded two-digit sequence number, and {name} for the original name (e.g., 'Scene_##', '{name}_v2')"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcapture_frame2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcheck_offline_media2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedclear_item_in_out2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedclear_sequence_in_out2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedclose_all_source_clips2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedclose_project2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedclose_sequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedclose_source_monitor2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcolor_correct2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedcompare_cmx3600_edls
    • Changedconsolidate_and_transfer2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedconsolidate_duplicates2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcopy_effect_values2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcopy_effects_between_clips2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_bars_and_tone5 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / audio_sample_rate
        Added value: +{
        +  "description": "Audio sample rate in Hz (default: 48000)",
        +  "type": "number"
        +}
      • addedInput schema / properties / pixel_aspect_denominator
        Added value: +{
        +  "description": "Pixel aspect ratio denominator (default: 1)",
        +  "type": "number"
        +}
      • addedInput schema / properties / pixel_aspect_numerator
        Added value: +{
        +  "description": "Pixel aspect ratio numerator (default: 1)",
        +  "type": "number"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_bin2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_caption_track2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_context_edit_plan2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_editorial_plan2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_project2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedcreate_project_backup
    • Changedcreate_sequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_sequence_from_clips2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_sequence_from_preset2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_smart_bin2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_subclip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_subsequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedcrop_clip
    • Changeddelete_bin2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changeddelete_marker2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changeddelete_multiple_project_items2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changeddelete_preview_files2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changeddelete_project_item2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changeddelete_sequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changeddelete_track2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changeddeselect_all_clips2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changeddetach_proxy2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addeddetect_active_picture_bounds
    • Addeddetect_audio_transients
    • Addeddetect_scene_edits
    • Changeddetect_silence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addeddetect_source_scene_changes
    • Changedduplicate_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedduplicate_sequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedenable_disable_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedencode_file2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedencode_project_item2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedexport_aaf2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedexport_as_fcp_xml2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedexport_as_project2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedexport_frame2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedexport_omf3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / include_pan
        Added value: +{
        +  "description": "Include pan information in the OMF (default: false)",
        +  "type": "boolean"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedexport_sequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedexport_sequence_clip_review_frames
    • Addedexport_sequence_marker_review_frames
    • Addedexport_sequence_review_frames
    • Changedextract_selection2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedfind_items_by_media_path2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedfind_project_item_by_name2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedfreeze_frame2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedgenerate_media_contact_sheet
    • Changedget_active_sequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_advanced_feature_support2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_all_project_paths2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_av_feature_support2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_bin_contents5 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Maximum direct children to return. Pair with recursive false for the smallest bounded response."
        +}
      • addedInput schema / properties / max_depth
        Added value: +{
        +  "description": "Maximum nested-bin depth when recursive is true. Defaults to the legacy unlimited recursion."
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Zero-based offset into the bin's direct children. Pair with limit for a bounded page."
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_bridge_telemetry2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_capabilities5 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / tool_limit
        Added value: +{
        +  "description": "Maximum tool catalog entries to return. Omit with tool_offset to preserve the complete legacy response."
        +}
      • addedInput schema / properties / tool_names
        Added value: +{
        +  "description": "Optional exact tool-name allowlist. Returns only those catalog entries while retaining the overall capability summary.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / tool_offset
        Added value: +{
        +  "description": "Zero-based offset into the filtered tool catalog. Pair with tool_limit for an explicitly sized page."
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_clip_adjustment_layer2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_clip_at_playhead2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_clip_at_position2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_clip_links2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_clip_markers2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_clip_properties2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_clip_speed2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_clip_volume2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_color_label2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_color_space2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_duplicate_media2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_effect_properties2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_encoder_presets2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_export_file_extension2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_footage_interpretation2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_full_clip_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_full_project_overview6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / include_bin_tree
        Added value: +{
        +  "description": "Include the recursive bin tree (default: true). Set false to return project statistics and sequences only.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_bin_depth
        Added value: +{
        +  "description": "Maximum recursive bin-tree depth when include_bin_tree is true (default: 10)."
        +}
      • addedInput schema / properties / sequence_limit
        Added value: +{
        +  "description": "Maximum sequences to include. Omit to preserve the complete legacy response."
        +}
      • addedInput schema / properties / sequence_offset
        Added value: +{
        +  "description": "Zero-based offset into project sequences."
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_full_sequence_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_graphics_white_luminance2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_insertion_bin2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_item_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_keyframes2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_linked_items2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_metadata4 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / include_project_metadata
        Added value: +{
        +  "description": "Include the potentially large Project Metadata XML payload (default: true). Set false for a bounded identity/path response.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / include_xmp_metadata
        Added value: +{
        +  "description": "Include the potentially large XMP XML payload (default: true). Set false for a bounded identity/path response.",
        +  "type": "boolean"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_mogrt_component2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_next_edit_point2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_offline_media2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_playhead_position2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_premiere_state2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_project_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_project_item_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_project_panel_metadata2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_project_scratch_disks2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_qe_clip_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_render_queue_status2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_selected_clips2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_sequence_count2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_sequence_in_out_points2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_sequence_markers_by_type2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_sequence_settings2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_sequence_structure2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_source_monitor_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_source_monitor_position2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_target_tracks2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_timeline_gaps2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_timeline_summary2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_total_clip_count2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_track_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_unused_media2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_used_media_report2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_value_at_time2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_version_info2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_work_area2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_workspaces2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedget_xmp_metadata2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedhas_proxy2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedimport_ae_comps2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedimport_edl
    • Changedimport_fcp_xml2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedimport_folder2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedimport_image_sequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedimport_media2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedimport_mogrt2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedimport_mogrt_from_library4 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / library_name
        Added value: +{
        +  "description": "Name of the Adobe Creative Cloud Library that contains the MOGRT",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "mogrt_name"
        -]New value: +[
        +  "library_name",
        +  "mogrt_name"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedimport_sequences4 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / sequence_ids / description
        Previous value: -"Array of sequence IDs to import from the source project. If omitted, all sequences are imported."New value: +"Non-empty array of sequence IDs to import from the source project."
      • changedInput schema / required
        Previous value: -[
        -  "project_path"
        -]New value: +[
        +  "project_path",
        +  "sequence_ids"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedinsert_from_source2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedinspect_cmx3600_edl
    • Changedinspect_dom_object2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedinspect_edit_readiness
    • Addedinspect_fcpxml_interchange
    • Addedinspect_media_streams
    • Changedinspect_project_item_av_metadata2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedinspect_project_recovery2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedinspect_sequence_av_settings2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedinspect_sequence_review_report
    • Changedinvert_selection2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedis_work_area_enabled2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlift_selection2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlink_selection2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_available_audio_effects2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_available_audio_transitions2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_available_effects2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_available_transitions2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_clip_effects2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_markers2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_project_items2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_sequence_tracks2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_sequences2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedlock_track2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmanage_project_context2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmanage_proxies2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmatch_frame2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmove_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmove_clip_to_track2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmove_item_to_bin2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmove_items_to_bin2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmove_playhead_to_edit2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmultiple_undo2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedmute_track2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changednest_clips2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addednormalize_loudness_file
    • Changedopen_in_source2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedopen_project2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedoverwrite_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedoverwrite_from_source2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedping2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedplan_silence_review_markers
    • Changedplay_source_monitor2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedplay_timeline2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedpreview_brand_spot
    • Changedpreview_edit_plan2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedpreview_editorial_plan2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedpreview_motion_graphics_demo
    • Addedpreview_product_spot
    • Changedpreview_project_intake2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedrazor_all_tracks2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedread_sequence_captions
    • Changedredo2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedrefresh_media2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedrelink_media2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedremove_all_effects2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedremove_effect2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedremove_effect_by_name2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedremove_from_timeline2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedremove_keyframe2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedremove_keyframe_range2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedremove_selected_clips2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedrename_bin2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedrename_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedrename_project_item2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedrename_track2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedreplace_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedreplace_clip_media2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedreverse_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedripple_delete2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedroll_edit2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedsave_project2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedsave_project_as2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedscene_edit_detection5 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / action
        Added value: +{
        +  "description": "Create markers (default) or apply cuts to the selected clips",
        +  "enum": [
        +    "CreateMarkers",
        +    "ApplyCuts"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / apply_cuts_to_linked_audio
        Added value: +{
        +  "description": "When applying cuts, also cut linked audio (default: false)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / sensitivity
        Added value: +{
        +  "description": "Scene-detection sensitivity (default: MediumSensitivity)",
        +  "enum": [
        +    "LowSensitivity",
        +    "MediumSensitivity",
        +    "HighSensitivity"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_project_context2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_project_items2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedselect_all_clips2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedselect_clips_by_color2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedselect_clips_by_name2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedselect_clips_in_range2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedselect_disabled_clips2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedselect_item2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_active_sequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_all_tracks_targeted2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_anti_alias_quality2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_blend_mode2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_anchor_point2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_opacity2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_pan2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_position2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_properties2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedset_clip_properties_batch
    • Changedset_clip_rotation2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_scale2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_selection2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_speed_qe2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_start_time2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clip_volume2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_clips_volume2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_color_label2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_color_value2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_effect_property2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_footage_interpretation2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_frame_blend2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_graphics_white_luminance2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_item_in_out2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_keyframe_interpolation2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_metadata7 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / field_name / description
        Previous value: -"Metadata field name (e.g., 'Column.Intrinsic.Description')"New value: +"Legacy partial-write argument. It is no longer executed because it cannot form a valid Project Metadata XML payload; use metadata_xml and updated_fields instead."
      • addedInput schema / properties / metadata_xml
        Added value: +{
        +  "description": "Complete Project Metadata XML previously read from get_metadata, with the intended field values applied.",
        +  "type": "string"
        +}
      • addedInput schema / properties / updated_fields
        Added value: +{
        +  "description": "Exact Project Metadata field paths changed in metadata_xml (for example, Column.Intrinsic.Description).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / value / description
        Previous value: -"Value to set"New value: +"Legacy partial-write argument. It is no longer executed; read projectMetadata first, update the complete XML, then supply metadata_xml and updated_fields."
      • changedInput schema / required
        Previous value: -[
        -  "item_id",
        -  "field_name",
        -  "value"
        -]New value: +[
        +  "item_id"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_offline3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / offline
        Added value: +{
        +  "description": "true to take media offline (default); false to refresh an existing offline item",
        +  "type": "boolean"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_override_frame_rate2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_override_pixel_aspect_ratio2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_playhead_position2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_poster_frame2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_project_item_audio_channel_mapping2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_project_panel_metadata2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_project_scratch_disk2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_scale_to_frame_size2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_scale_width_height2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_scratch_disk_path2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_sequence_audio_settings2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_sequence_display_format2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_sequence_field_type2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_sequence_frame_rate2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_sequence_in_out_points2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_sequence_pixel_aspect_ratio4 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / ratio / description
        Previous value: -"Pixel aspect ratio (1.0 for square pixels, 1.4222 for 16:9 DV, etc.)"New value: +"Pixel aspect ratio string (for example '1.0' for square pixels or '1.4222' for 16:9 DV)."
      • changedInput schema / properties / ratio / type
        Previous value: -"number"New value: +"string"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_sequence_resolution2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_sequence_settings2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_source_in_out2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_start_time2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_target_track2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_time_interpolation2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_transcode_on_ingest2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_uniform_scale2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_work_area2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_workspace2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_xmp_metadata3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / xmp_xml / description
        Previous value: -"Complete XMP metadata XML string to set"New value: +"Well-formed XMP XML containing only the fields to add or replace"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedset_zero_point2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedsetup_ducking
    • Changedslide_edit2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedslip_edit2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedspeed_change2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedsplit_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedstabilize_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedstart_batch_encode2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedstop_playback2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedtoggle_track_visibility2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedtrim_clip2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedundo2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedunlink_selection2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedunnest_sequence2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Changedupdate_marker2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedvalidate_cmx3600_edl
    • Changedvalidate_export_preset2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedvalidate_project_for_export
    • Changedverify_delivery_file2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
    • Addedverify_fcpxml_media_references
    • Changedverify_premiere_connection2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "data": {
        +      "description": "Tool-specific result data when ok is true."
        +    },
        +    "error": {
        +      "description": "Failure detail when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "Whether the tool completed successfully.",
        +      "type": "boolean"
        +    },
        +    "tool": {
        +      "description": "The registered MCP tool name.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "tool"
        +  ],
        +  "type": "object"
        +}
  16. 4 tool updatesv1.13.0
    • Addedcreate_editorial_plan
    • Addedpreview_editorial_plan
    • Addedpreview_project_intake
    • Changedset_effect_property2 fields changed
      • changedInput schema / properties / value / description
        Previous value: -"Value to set"New value: +"Number or string value to set. Use the exact JSON string reported for a MOGRT text or graphic parameter."
      • removedInput schema / properties / value / type
        Removed value: -"number"
  17. 1 tool updatev1.11.5
    • Changedset_clip_properties1 field changed
      • changedInput schema / properties / speed / description
        Previous value: -"Playback speed multiplier (1.0 = normal, 2.0 = double speed)"New value: +"Unsupported by Premiere's public scripting APIs. Supplying this returns an actionable error without mutating the clip."

TDQS

C2.8/5.0

Scored across 439 tools

Disambiguation1/5

With 439 tools there is massive functional overlap: add_to_timeline, insert_from_source, overwrite_clip, overwrite_from_source, add_to_timeline_batch and move_clip all place media on a timeline; five sequence-inspection tools (get_full_sequence_info, get_sequence_structure, get_timeline_summary, inspect_timeline_snapshot, get_active_sequence) return largely the same data; removal is split across remove_from_timeline, remove_selected_clips, ripple_delete, ripple_remove_timeline_ranges, lift_selection and extract_selection. Dozens of tools are documented as always-failing stubs (speed_change, set_clip_speed_qe, reverse_clip, apply_lut, add_text_overlay, nest_clips, replace_clip_media, set_poster_frame, export_aaf, import_edl), creating further misselection traps. An agent cannot reliably pick the right tool from this surface.

Naming Consistency3/5

Most tools follow snake_case verb_noun (get_clip_properties, add_marker, set_clip_scale), which is readable. But the set mixes many prefix families (get/set/add/create/delete/remove/apply/preview/plan/inspect/verify/export/import) and has deviations like speed_change, can_execute, ping, undo, multiple_undo, and inconsistent singular/plural (add_track vs add_tracks, add_marker vs add_markers_batch).

Tool Count1/5

439 tools for a single application server is an extreme mismatch; the surface is far beyond what any agent can navigate or what the domain warrants. Many near-duplicate CEP/UXP variants and always-failing stubs inflate the count without adding capability.

Completeness3/5

Coverage of the Premiere domain is genuinely broad (project/bin management, timeline editing, effects, markers, export, media analysis, captions, transcripts), and most lifecycle operations exist. However, several core capabilities are shipped as documented dead ends (clip speed, reverse, LUT application, nest/un-nest via selection, poster frame, EDL import), leaving real gaps that will surprise agents mid-workflow.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to control video editing software (剪映/CapCut and Adobe Premiere Pro) through a unified interface, supporting operations like material import, clip splitting, subtitle addition, effects, transitions, audio mixing, and export.
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Control Adobe Premiere Pro from AI agents via ExtendScript, enabling media import, sequence creation, effect application, media export, and custom scripting.
    23 npm
    MIT