Local frame inspection and sprite export for animation pipelines
Three tools with complete input schemas and descriptions, but significant quality gaps. Tool names lack action verbs (inspect_video, prepare, package are weak; should be extract_frames, compose_sprite_sheet, export_sprite_package). Descriptions are present but generic (194-char baseline; these average ~120 chars, missing WHEN/WHY context). Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). No output schema documentation visible. Error handling is minimal, tools raise ValueError with raw messages, no recovery guidance. No tool annotations (readOnlyHint/destructiveHint/idempotentHint). All three tools perform WRITE operations but descriptions do not explicitly state this.
Inspects a video file to extract frames and timing information, generating frame metadata and contact sheets
Packages a sprite sheet with alpha channel into optimized frame assets with metadata
Prepares selected frames from an inspection into a sprite sheet with timing metadata
Tool names lack action verbs. 'inspect_video' should be 'extract_frames'; 'prepare' should be 'compose_sprite_sheet'; 'package' should be 'export_sprite_package'. LLMs infer intent from verb-noun patterns, weak names cause selection errors.
No output schema documentation. Tools return dicts with fields like 'inspection', 'frames', 'manifest', 'sheet', LLMs cannot plan downstream calls without knowing what fields to expect. Document return types explicitly.
Descriptions do not state that tools perform WRITE operations (create files, modify filesystem). Agents need to know which calls are irreversible. Add 'Creates/writes' to each description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Parameters lack constraints. 'max_frames' (integer) has no min/max bounds, LLM could pass 1000000. 'columns', 'rows', 'thumb' similarly unbounded. Add ranges: max_frames 2-10000, columns 1-20, rows 1-20, thumb 16-512.
Error handling is minimal. Tools raise ValueError with raw messages ('Install ffmpeg and put it on PATH'). No recovery guidance. Errors should suggest next steps: 'ffmpeg not found. Install via: brew install ffmpeg (macOS) or apt-get install ffmpeg (Linux).'