Skip to main content
Glama

qa

Run post-render quality checks on the finished MP4 to catch blank openings, loudness problems, caption readability issues, and chapter hygiene that structural checks miss.

Instructions

Post-render checks on the FINISHED MP4 — blank opening, blank poster, master loudness, music-bed level, per-scene hold shares + compose warnings, caption readability, frame/chapter hygiene. Run it after compose/render: it sees what a viewer sees, which neither lint (pre-take) nor report.json (structural) can. Returns a jobId immediately — poll job_status. Rejects if another job is running.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dirYesdemo project directory — pass an absolute path
langNorender a language variant from scene.narrations[<code>] over the shared take (artifacts namespaced: audio/<code>/, captions.<code>.*, output/final-demo.<code>.mp4). Omit for the default single-language render.
paramsNostoryboard template params (name → value); each must be declared in the storyboard's params block. Substitutes {{name}} across all stages.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
jobIdYes
statusYes
demoDirYesresolved absolute demo directory
logFileYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.15.1

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries full behavioral burden. It discloses the asynchronous pattern (returns jobId immediately, poll job_status) and the concurrency cap (rejects if another job is running). These are critical operational behaviors 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.

Conciseness5/5

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

The description packs a high information density: it leads with the core purpose, lists checks in a compact clause, justifies when to use it, and closes with return and constraint. Every sentence earns its place and is front-loaded with the most important facts.

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 complex (3 params, nested objects, async behavior), but the description covers its operational model, failure mode, and relationship to sibling tools. The output schema exists and is rich, so not explaining return values is acceptable. No missing piece would prevent an agent from calling 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 baseline is 3. The description adds no parameter-specific meaning; all parameter semantics (absolute path, language variants, template params) are fully documented in the input schema itself.

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: 'Post-render checks on the FINISHED MP4', then enumerates concrete checks (blank opening, loudness, caption readability, etc.). It also distinguishes itself from lint (pre-take) and report.json (structural), so an agent can unambiguously select 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 Guidelines5/5

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

Explicitly states when to run it: 'Run it after compose/render' and why: it sees what a viewer sees, unlike lint or report.json. The async return and single-job rejection are also practical usage constraints, leaving no ambiguity about deployment.

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