Skip to main content
Glama
jdsalasca

Aseprite Asset MCP

by jdsalasca

Aseprite Asset MCP

Plan de arquitectura y evolución: docs/IMPROVEMENT_PLAN.md. La integración con la UX independiente está documentada en docs/ASSET_STUDIO_INTEGRATION.md.

MCP server público para crear pixel art, personajes y escenarios de Aseprite con TypeScript 6.0.3, Node.js 24 y arquitectura hexagonal.

El servidor usa stdio. El adaptador MCP llama a casos de uso de aplicación y el adaptador de infraestructura ejecuta Aseprite de forma controlada. Los workflows generan primero un plan JSON reproducible y un manifiesto compatible con Godot.

Install / Quickstart

En 5 minutos:

  1. Requisitos: Node.js 24 o posterior, npm 11 o posterior y Aseprite instalado. El servidor invoca el binario de Aseprite; si no está en el PATH, define ASEPRITE_PATH:

$env:ASEPRITE_PATH = 'C:\Program Files (x86)\Steam\steamapps\common\Aseprite\Aseprite.exe'
  1. Ejecuta el servidor sin instalarlo (paquete público en npm) o instálalo globalmente para obtener el bin aseprite-asset-mcp:

npx -y aseprite-asset-mcp
# o
npm install -g aseprite-asset-mcp && aseprite-asset-mcp
  1. Apunta tu cliente MCP al bin. El servidor habla stdio y ASEPRITE_PATH se pasa como variable de entorno.

Claude Desktop (claude_desktop_config.json) y Cursor (mcp.json) usan mcpServers:

{
  "mcpServers": {
    "aseprite": {
      "command": "npx",
      "args": ["-y", "aseprite-asset-mcp"],
      "env": {
        "ASEPRITE_PATH": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Aseprite\\Aseprite.exe"
      }
    }
  }
}

OpenCode (opencode.json) usa mcp con type: "local":

{
  "mcp": {
    "aseprite": {
      "type": "local",
      "command": ["npx", "-y", "aseprite-asset-mcp"],
      "environment": {
        "ASEPRITE_PATH": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Aseprite\\Aseprite.exe"
      },
      "enabled": true
    }
  }
}

Si instalaste el paquete globalmente, usa "command": "aseprite-asset-mcp" y omite args.

  1. Verifica el handshake pidiendo al agente server_capabilities o get_tools_list. Debe reportar 185 tools.

Related MCP server: aseprite-mcp

Arquitectura

src/
  domain/          contratos y resultados del dominio
  application/     casos de uso
  infrastructure/  adaptador CLI de Aseprite
  interfaces/      adaptador MCP y entrada stdio
  workflows/       planes TypeScript y cliente MCP
tests-ts/          TDD unitario y handshake MCP

Estado de la migración

La rama develop usa únicamente el runtime TypeScript. El núcleo disponible incluye canvas, grupos, capas, frames, tags, paletas, dibujo pixelado, tilemaps, validación, exportación, planes deterministas para personajes y escenarios, y handshake MCP real por stdio.

Este proyecto mantiene su propio desarrollo, roadmap y contrato de herramientas para convertirlo en una fábrica de assets pixel-art eficiente para agentes.

Showcase visual

Los ejemplos se generan de forma reproducible con npm run showcase. El mismo pipeline crea estilo, tileset, mapa, oleaje, transición temporal y manifests.

Declarative asset pipeline

Coastal map preview

Animated beach waves

Day, sunset, night, and sunrise transition

Ver también:

Requisitos

  • Node.js 24 o posterior.

  • npm 11 o posterior.

  • Aseprite instalado y accesible.

  • ASEPRITE_PATH configurado si el ejecutable no está en el PATH.

En Windows:

$env:ASEPRITE_PATH = 'C:\Program Files (x86)\Steam\steamapps\common\Aseprite\Aseprite.exe'
npm install
npm test

Conectar el MCP

.mcp.json usa el servidor TypeScript:

{
  "mcpServers": {
    "aseprite": {
      "type": "stdio",
      "command": "npm",
      "args": ["run", "mcp", "--silent"]
    }
  }
}

Ejecuta manualmente con npm run mcp. stdout pertenece al protocolo MCP; los logs operativos van a stderr.

Workflows para juegos

Modo plan:

npm run asset:character -- --asset=moon-knight
npm run asset:scene -- --asset=forest-ruins

Esto crea en artifacts/aseprite/ el plan de llamadas y el manifiesto *.godot.json.

Modo ejecución, después de revisar el plan:

$env:ASEPRITE_PATH = 'C:\Program Files (x86)\Steam\steamapps\common\Aseprite\Aseprite.exe'
npm run asset:character -- --asset=moon-knight --execute
npm run asset:scene -- --asset=forest-ruins --execute
npm run asset:odiseum-style
npm run asset:odiseum-world
npm run asset:library
npm run showcase

Secuencia: canvas; grupos y capas semánticas; paleta; frames y tags; validación; spritesheet, datos y manifiesto para Godot.

asset:odiseum-style genera los personajes, el entrenador y la transición de viaje de Odiseum. asset:odiseum-world genera el sheet de seis props, el glifo animado de los portales y el cristal animado exclusivo de Starfall Grove con la misma paleta cozy. asset:library genera odiseum-cozy-kit, una biblioteca reutilizable de ocho assets de entorno de 48 px con sombras de contacto, navegación, naturaleza y arquitectura.

La biblioteca se exporta en art/library/odiseum-cozy-kit.png junto con asset-library.json. El manifiesto documenta el índice de cada frame, categoría, paleta, escala y regla de renderizado nearest para reutilizar el kit en otros juegos originales.

Herramientas compactas para agentes

El agente puede descubrir capacidades por carpetas antes de cargar detalles:

  • get_tools_list: devuelve carpetas y conteos sin repetir los más de cien nombres.

  • get_tools_by_folder: carga solo una familia, por ejemplo asset/animation o asset/quality.

  • run_asset_recipe: ejecuta o previsualiza recetas pixel_art, animation_pixel_art, gif y atlas.

  • batch_asset_job: agrupa varias recetas en una sola llamada y devuelve un resultado compacto.

  • convert_image_to_pixel_art: convierte PNG, JPG, WebP y otros formatos soportados por Sharp con resize box/nearest, paleta limitada, transparencia y dithering Bayer opcional.

  • convert_animation_to_pixel_art: procesa todos los frames con una paleta global y conserva sus delays en GIF.

  • upscale_pixel_art: aumenta sprites estáticos o animados con nearest-neighbor determinista, conserva transparencia/delays y limita la salida a 4096 px.

  • harmonize_asset_palette: mueve un PNG/GIF hacia una familia cromática de acento, limita la paleta y conserva transparencia/delays en una salida separada.

  • build_contact_sheet: ajusta sprites heterogéneos a celdas nearest-neighbor, genera un PNG de preview y un manifest JSON navegable en una sola llamada.

  • export_animation_gif: exporta una imagen animada o un .aseprite a GIF.

  • inspect_asset_bundle: combina dimensiones, frames, colores, transparencia, delays, violaciones y recomendaciones deterministas en una sola respuesta compacta.

  • inspect_asset_batch: audita hasta 32 assets en una sola llamada, conserva el orden, aísla fallos de decodificación y devuelve un resumen valid/invalid/failed sin transferir buffers de píxeles.

  • audit_asset_manifest: revisa los archivos referenciados por un manifest generado, detecta faltantes o archivos vacíos y devuelve formato, tamaño y hash SHA-256 en una respuesta compacta.

  • recommend_asset_scene: recibe un prompt de mundo, tags o efectos y devuelve una selección determinista de assets con ranking, razones y cobertura de tipos/variantes para componer escenas con menos llamadas.

  • build_scene_bundle: compone en una llamada la versión PNG, la animación GIF y sus manifests de una escena, reutilizando los compositores existentes y deteniéndose si falla la composición estática.

  • apply_enhancement_plan: inspecciona, planifica, aplica y ejecuta quality gate en una sola llamada determinista, preservando la fuente y reduciendo round-trips de la UX/agente.

  • apply_enhancement_batch: aplica ese mismo pipeline a hasta 24 assets en una llamada, conserva el orden, aísla fallos por archivo y bloquea colisiones antes de escribir.

  • inspect_animation_quality: audita una animación en una sola llamada, detecta frames duplicados, cambios por transición, timing irregular, deriva de paleta y costura de loop.

  • inspect_sprite_geometry: calcula bounds alfa, componentes conectados, baseline y pivotes por frame para placement estable.

  • generate_sprite_hitboxes: deriva un manifest JSON de colisión desde esa geometría, con modo components o union y padding acotado, sin duplicar análisis raster.

  • build_sprite_runtime_bundle: empaqueta spritesheet, timing e hitboxes en una sola llamada y publica un manifest runtime navegable.

  • generate_sprite_anchors: deriva puntos bottom_center, center, top_center, laterales y baseline por frame para placement estable en motores.

  • normalize_sprite: recorta PNG/GIF a los bounds alfa compartidos, añade padding determinista, conserva los delays y escribe un manifest JSON con pivote para motores 2D.

  • build_animation_sheet: convierte todos los frames de una animación en un PNG spritesheet con coordenadas, pivotes bottom_center, delays y duración de loop en un manifest navegable.

  • inspect_sprite_geometry: calcula bounds alfa, componentes conectados, baseline y pivotes por frame para detectar jitter antes de colisiones o composición de escenas.

  • export_asset_pack: empaqueta imágenes del mismo tamaño en un atlas PNG y entrega un manifiesto JSON con la posición de cada asset.

  • create_style_bible: fija paleta, luz, escala, detalle y semilla para mantener consistencia.

  • inspect_reference y run_asset_quality_gate: analizan color, contraste, bordes, transparencia, banding y píxeles aislados.

  • build_terrain_tileset: genera 16 máscaras cardinales por terreno para transiciones reutilizables.

  • generate_world_map: crea mapas multi-bioma deterministas con landmarks y preview.

  • generate_beach_scene: crea costa, arena, tierra, preview y oleaje animado.

  • extend_scene: amplía un mapa JSON existente por sus bordes, conserva capas y desplaza landmarks de forma determinista.

  • generate_biome_transition: detecta fronteras entre biomas, calcula una banda determinista de transición y escribe metadatos/preview para espuma, hierba, roca o bordes de terreno sin mutar el mapa fuente.

  • generate_seamless_texture: iguala bordes opuestos para texturas repetibles de agua, tierra, piedra o hierba sin alterar la fuente.

  • generate_water_reflection: genera un GIF determinista con reflejo bajo una línea de agua, oleaje y destellos temporales para océanos, playas y mapas.

  • generate_water_caustics: genera una pasada GIF de luz refractada sobre píxeles opacos de agua, piscinas, playas o interiores inundados.

  • generate_day_night_cycle: genera un GIF determinista con las etapas day, sunset, night y sunrise, preservando transparencia y dimensiones.

  • generate_environment_pack: empaqueta playa, bosque, aldea o cueva en una sola llamada.

  • create_asset_recipe: compone outline, grading, materiales, luz, sombras, partículas, normal map y quality gate en un plan determinista sin ejecutar cambios.

  • get_asset_library: busca una biblioteca de 339 items preconstruidos en 10 categorías, con resultados compactos para reducir tokens.

  • get_asset_library_item: resuelve README, manifest, preview y sprite sheet de un asset concreto.

  • audit_asset_library: valida IDs, referencias de presets, categorías y rutas navegables antes de componer escenas; devuelve métricas compactas y hasta 100 violaciones deterministas.

  • summarize_asset_library: devuelve un mapa de categorías, tres ejemplos por categoría y presets sin cargar el detalle completo, reduciendo tokens de navegación.

  • plan_asset_scene: recibe IDs arbitrarios de la biblioteca y devuelve capas ordenadas con roles, previews y sprites sin generar archivos.

  • compose_asset_scene: recibe IDs y materializa un PNG de escena + manifest navegable con placements deterministas, sin modificar los originales.

  • compose_asset_scene_animation: recibe IDs de la biblioteca y materializa un GIF de escena con selección cíclica de frames, delays y manifest por frame.

  • generate_library_variant_pack: recibe múltiples IDs y genera en una sola llamada packs de lluvia, fuego, terremoto, aves, noche, movimiento y reflejos reutilizando el servicio de variantes existente.

  • get_asset_preset: devuelve composiciones listas como living-forest, coastal-sunset, fantasy-quest y rainy-village.

  • generate_asset_preset: ejecuta un preset completo y devuelve terreno, mapa, preview, oleaje cuando aplica y transición temporal en una respuesta compacta.

  • generate_scene_effect_stack: agrupa en una sola llamada lluvia, partículas, caústicas/reflejos, día-noche, granularidad de material e iluminación direccional; infiere dimensiones para partículas, devuelve todos los artifacts y preserva la fuente.

  • generate_motion_pack: crea ciclos idle, walk, run, jump o attack desde un sprite estático o animado.

  • generate_source_variant_pack: crea en una sola llamada hasta nueve variantes deterministas (rain, fire, earthquake, birds, night, day_night, walk, water_reflection y water_caustics) a partir de un asset fuente y devuelve un manifiesto compacto de artifacts.

Las operaciones de imagen no necesitan abrir Aseprite; eso reduce latencia y tokens para conversiones masivas. Las operaciones sobre .aseprite siguen pasando por el adaptador CLI hexagonal y mantienen la compatibilidad con Godot.

TDD y calidad

npm run typecheck
npm run test:ts
npm test

Las pruebas de dominio y planes no necesitan abrir Aseprite. La prueba MCP inicia el servidor TypeScript real, hace el handshake stdio y verifica las herramientas expuestas.

Docker

La imagen usa Node.js 24. El binario de Aseprite debe estar disponible dentro del contenedor y configurarse con ASEPRITE_PATH; no se incluyen credenciales ni binarios propietarios.

docker compose run --rm aseprite-mcp-dev

Licencia y proyecto

Proyecto independiente: jdsalasca/aseprite-asset-mcp. Conserva la licencia MIT.

Ejecución de recetas compuestas

create_asset_recipe genera un plan revisable y execute_asset_recipe lo ejecuta paso a paso usando los mismos servicios de efectos, materiales, iluminación y calidad. El pipeline conserva la fuente, detiene la primera operación fallida y devuelve el artifact final.

La UX puede invocar POST /api/v1/recipes/execute cuando MCP_REST_PORT está habilitado.

Biblioteca de assets y presets

assets/folders/ contiene una biblioteca determinista y navegable: personajes, flora, fauna, criaturas mitológicas, monturas, armas y accesorios, biomas/mapas, interiores, instrumentos y efectos de escena. Cada carpeta tiene su propio README.md, manifest.json, preview.png, preview.svg, sprite-sheet.png y sprite-sheet.svg.

Para regenerar la biblioteca después de cambiar sus semillas:

npm run asset:library:catalog

Ejemplos REST:

GET /api/v1/library?query=rain&limit=12
GET /api/v1/library/audit
GET /api/v1/library/summary
POST /api/v1/library/scene-plan
POST /api/v1/library/scene-compose
POST /api/v1/library/scene-animation-compose
POST /api/v1/library/variants/pack
POST /api/v1/effects/motion
POST /api/v1/effects/upscale
POST /api/v1/assets/palette-harmonize
POST /api/v1/assets/contact-sheet
POST /api/v1/effects/seamless
POST /api/v1/effects/water-reflection
POST /api/v1/effects/water-caustics
POST /api/v1/effects/day-night
POST /api/v1/variants/pack
POST /api/v1/assets/quality-bundle
POST /api/v1/assets/enhancement-bundle
POST /api/v1/assets/enhancement-batch
POST /api/v1/assets/quality-batch
POST /api/v1/assets/animation-quality
POST /api/v1/assets/normalize-sprite
POST /api/v1/assets/animation-sheet
POST /api/v1/assets/sprite-geometry
POST /api/v1/assets/sprite-hitboxes
POST /api/v1/assets/sprite-runtime-bundle
POST /api/v1/assets/sprite-anchors
GET /api/v1/library/items/forest-ranger
GET /api/v1/library/presets/living-forest
GET /api/v1/library/items/forest-ranger/preview
GET /api/v1/library/items/forest-ranger/sprite
GET /api/v1/library/presets/living-forest/compose
POST /api/v1/library/presets/generate
POST /api/v1/effects/scene-stack
POST /api/v1/scenes/biome-transition

Las dos últimas rutas sirven PNG/GIF de forma binaria desde el adaptador de archivos, validando primero el id del catálogo y bloqueando escapes del directorio assets/folders. Asset Studio las consume para mostrar previews reales en PixelAssetGrid.

compose_asset_preset y GET /api/v1/library/presets/:id/compose devuelven en una sola respuesta los assets y las capas ordenadas (background, midground, foreground, effect), reduciendo búsquedas repetidas de los agentes.

compose_asset_scene y POST /api/v1/library/scene-compose reciben item_ids, output_filename, manifest_filename, width, height y padding. El servicio decodifica las previews mediante un puerto raster, compone con alpha source-over y escribe un PNG más un manifest con coordenadas, dimensiones, roles y garantías deterministic/sourcePreserved.

compose_asset_scene_animation y POST /api/v1/library/scene-animation-compose añaden frames (2–24) y delay_ms (1–2000). Cada capa selecciona su frame de forma cíclica, se compone con geometría determinista y se exporta como GIF sin modificar las previews originales.

generate_library_variant_pack y POST /api/v1/library/variants/pack reciben item_ids, output_prefix, variants, frames, seed y delay_ms. El orquestador resuelve y valida los IDs, materializa previews con un adaptador temporal, delega el algoritmo a AssetVariantPackService, libera los temporales incluso ante errores y escribe un manifest compacto del lote.

audit_asset_manifest y POST /api/v1/assets/manifest-audit reciben { "manifest_filename": "output/scene.json" }. El caso de uso extrae rutas de salida conocidas, comprueba existencia y tamaño, calcula SHA-256 y marca valid: false si falta o está vacío algún artefacto. Con ASSET_ARTIFACT_ROOT se puede restringir la auditoría a una raíz permitida.

recommend_asset_scene y POST /api/v1/library/recommendations reciben opcionalmente prompt, category, required_kinds, required_tags, required_variants, limit y seed. Devuelven suggestedItemIds, scores y razones como prompt:water, tag:tropical o variant:water_reflection; el resultado se puede pasar directamente a plan_asset_scene o compose_asset_scene.

build_scene_bundle y POST /api/v1/library/scene-bundle reciben item_ids, output_prefix, width, height, padding, frames y delay_ms. Generan scene.png, scene.json, scene.gif y scene-animation.json dentro del prefijo indicado con una respuesta compacta.

apply_enhancement_plan (MCP) y POST /api/v1/assets/enhancement-bundle (REST) reciben { "filename": "hero.png", "output_filename": "hero-enhanced.png", "format": "png", "goals": ["cleanup", "terrain_grain", "directional_lighting"], "max_colors": 64, "seed": 7 }. El servicio de aplicación analiza la referencia, crea el plan explicable, escribe una salida separada y ejecuta el quality gate; devuelve plan, applied, quality, deterministic y sourcePreserved en una respuesta.

apply_enhancement_batch y POST /api/v1/assets/enhancement-batch reciben { "items": [{ "filename": "hero.png", "output_filename": "hero-batch.png", "format": "png" }, { "filename": "tree.gif", "output_filename": "tree-batch.gif", "format": "gif" }], "goals": ["cleanup", "particles"], "max_colors": 64, "seed": 7 }. Validan colisiones globales antes de escribir, procesan en orden y devuelven summary: { total, succeeded, failed } con error por item.

La composición es fail-closed: si el preset contiene una referencia inexistente, no devuelve una escena parcial. Ejecuta audit_asset_library para localizar y corregir el catálogo antes de componer.

Las variantes (rain, fire, earthquake, birds, wave-reflection, day, sunset, night, walk, attack, etc.) son contratos para los algoritmos existentes: se aplican sobre una copia del asset y conservan la fuente.

normalize_sprite es útil antes de generar atlas o integrar animaciones en Godot: usa el union de alfa de todos los frames para que el canvas no salte, limita el padding a 16 px, rechaza colisiones de input/output/manifest y deja el pivote bottom_center sobre la última fila visible.

build_animation_sheet recibe { "input_filename": "hero.gif", "output_filename": "hero-sheet.png", "manifest_filename": "hero-sheet.json", "columns": 4, "padding": 1 }. El PNG solo contiene la rejilla visual; el manifest conserva los delays originales y los pivotes globales de cada celda, evitando que la animación dependa de un formato GIF en el motor.

inspect_sprite_geometry recibe { "filename": "hero.gif", "min_component_pixels": 1 } y devuelve por frame los componentes alfa 4-conectados, bounds, baseline y pivote. Un bounds inestable genera recomendación de normalización, pero no se marca como error: el movimiento intencional también puede cambiar la silueta.

generate_source_variant_pack evita nueve llamadas del agente cuando se necesita explorar un asset fuente en distintos contextos. Ejemplo MCP/REST equivalente:

{
  "input_filename": "art/forest-ranger.png",
  "output_prefix": "art/forest-ranger-variants",
  "variants": ["rain", "night", "birds", "day_night"],
  "frames": 8,
  "seed": 17,
  "delay_ms": 90
}

La respuesta contiene artifacts[] con ruta, operación, cantidad de frames, formato y las garantías deterministic y sourcePreserved. Las fuentes PNG estáticas también pueden producir GIFs animados; el servidor rechaza explícitamente pedir varios frames con formato PNG.

generate_scene_effect_stack reduce llamadas repetidas del agente cuando se quiere probar una escena completa. Selecciona efectos únicos y el servicio reutiliza los puertos existentes de efectos, materiales e iluminación:

{
  "input_filename": "art/forest-ranger.png",
  "output_prefix": "art/forest-ranger-scene",
  "effects": ["material_texture", "depth_lighting", "rain", "particles", "water_caustics", "day_night"],
  "frames": 8,
  "seed": 17,
  "material": "earth",
  "direction": "south_east",
  "format": "gif"
}

El equivalente REST es POST /api/v1/effects/scene-stack; devuelve un manifest compacto con un artifact por efecto y mantiene deterministic: true y sourcePreserved: true.

generate_biome_transition recibe input_map_filename, output_map_filename, preview_filename opcional, transition_width de 1 a 8 y seed. Conserva las capas y landmarks, añade biomeTransitions[] con distancia, bioma origen/destino y variante (edge, blend, accent) y genera un preview de un píxel por celda; esto permite que una herramienta posterior pinte espuma, bordes de hierba o roca sin regenerar el mundo.

Available Tools

185 tools
add_frameC

Add one animation frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description bears the full burden of behavioral disclosure. It only indicates a mutation ('Add') without explaining whether the frame is appended, inserted at the current position, created blank, or loaded from the filename parameter. This leaves important side effects undisclosed.

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 extremely concise with no wasted words and the core action is front-loaded. However, it is so terse that it sacrifices necessary semantic content, making it slightly under-specified for the conciseness criterion.

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 simple one-parameter tool, the description still omits critical context: what filename means, what type of frame is added, and how the frame is placed in the animation timeline. With no output schema and no annotations, the agent lacks enough information to invoke the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must clarify the 'filename' parameter, but it does not. The name suggests a file, yet it is unclear whether filename is the image source, an output name, or something else. The parameter's meaning is entirely ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the exact action ('Add') and resource ('one animation frame'), and the singular 'one' weakly differentiates it from the sibling 'add_frames'. It lacks detail about the target animation or how the new frame relates to existing frames, so it is clear but not fully distinctive.

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 usage guidance is provided. The description does not specify when to use this tool over alternatives such as add_frames, set_frame, copy_frame, or delete_frame, and gives no context about preconditions or typical workflow placement.

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

add_framesC

Add a deterministic number of animation frames.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYes
filenameYes
duration_msNo

TDQS

C2.2/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of disclosure. It only says 'add a deterministic number of animation frames,' leaving unclear whether frames are appended or inserted, what 'deterministic' means regarding frame counts, and any side effects on existing animation data. This is severely under-disclosed.

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 a single sentence, which is concise, but it is too lean to be useful. It does not front-load any key distinctions or constraints. A sentence that adds little information is not efficient – it is merely brief.

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

Completeness1/5

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

Given the absence of annotations, output schema, and rich parameter documentation, this description is grossly incomplete. It does not explain the relationship to sibling tools, the meaning of 'deterministic,' or expected behavior. An agent has almost no basis to call this tool correctly.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain parameter meaning, but it mentions none of the three parameters (filename, count, duration_ms). An agent cannot infer what 'count' refers to or what duration_ms does from the description alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Add') and resource ('animation frames'), indicating the core operation. However, it does not differentiate from sibling tools like 'add_frame' or clarify whether multiple frames are added at once. The term 'deterministic' adds ambiguity, but the basic purpose is discernible.

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 is provided on when to use this tool versus alternatives such as add_frame, copy_frame, or propagate_frame_to_range. There is no mention of prerequisites, typical use cases, or scenarios where this tool is inappropriate.

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

add_groupC

Add a named layer group to an Aseprite document.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
group_nameYes
parent_groupNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It only says 'Add' without mentioning side effects (e.g., whether the document is mutated on disk, if the operation is undoable, or if it requires a saved file). For a mutation tool, this is a notable gap, though the simplicity of adding a layer group mitigates severity slightly.

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 a single, front-loaded sentence with no wasted words. However, it is under-specified rather than efficiently complete, so it does not earn a high conciseness score because the brevity sacrifices necessary 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?

Given no annotations, no output schema, and three parameters, the description should clarify parent_group semantics, document preconditions, and any return value. None are provided. For an agent to call this correctly, it would need to inspect the schema and guess behavior, which is a clear completeness gap.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters. The phrase 'named layer group' implies group_name is the name, but filename and parent_group are entirely unmentioned. The agent is left to guess the meaning of parent_group and its default behavior from the schema bare names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Add a named layer group to an Aseprite document.' It clearly identifies the action and target document. It does not explicitly differentiate from add_layer, but the term 'group' inherently distinguishes the resource type, so it is specific enough for an agent to grasp the core function.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives such as add_layer, create_tilemap_layer, or other layer operations. An agent must infer selection from the name alone, which is insufficient for confident tool choice.

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

add_layerC

Add a named layer, optionally inside a group.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNo
filenameYes
layer_nameYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys that this is a mutation and that placement inside a group is conditional, but doesn't say whether the group is auto-created, whether existing layers are affected, or what happens on name collisions.

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

Conciseness5/5

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

Eight words, with the action and key parameter both front-loaded. 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 mutating, annotation-free tool with 3 parameters and no output schema, this is too thin. Missing filename semantics, group creation behavior, error conditions, and differentiation from sibling layer tools.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain all parameters. It hints that layer_name is the layer's name and group is the optional parent group, but leaves filename completely unexplained despite being required.

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

Purpose4/5

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

Identifies a specific action (add) and resource (named layer) with an optional group placement. Clear enough to distinguish from add_group/delete_layer, but doesn't state what filename refers to or how set_layer differs.

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 vs add_group/set_layer or other layering operations. No mention of valid target files, group requirements, or whether the layer is inserted at a particular position.

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

adjust_brightness_contrastC

Apply Aseprite native brightness and contrast adjustment.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
widthNo
heightNo
contrastNo
filenameYes
brightnessNo
layer_nameNo
frame_indexNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden of behavioral disclosure. 'Apply' implies modification, but the description doesn't state whether it's destructive, whether it operates on the whole sprite or a region, or whether it affects only the current frame/layer. Critical side effects are left undisclosed.

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 concise sentence with no wasted words. It front-loads the core operation. However, it is so terse that it sacrifices necessary explanatory content, but for pure conciseness it's effective.

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

Completeness1/5

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

Given 9 parameters, no output schema, and no annotations, this description is critically incomplete. It doesn't explain the operation's scope (layer/frame/region), the parameter semantics, expected return value, or side effects. An agent cannot reliably invoke this tool correctly from the description alone.

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

Parameters1/5

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

Schema description coverage is 0%, and the description offers no parameter details. It doesn't explain that brightness/contrast ranges are -100 to 100, or the meaning of x/y/width/height, layer_name, or frame_index. The agent must guess from parameter names and defaults, which is inadequate for 9 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 states a clear verb ('Apply') and resource ('Aseprite native brightness and contrast adjustment'). It's specific enough to indicate the core operation, but it doesn't differentiate from sibling adjustment tools like 'adjust_hsl_native' or 'apply_color_grade'.

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 is provided on when to use this tool versus alternatives (e.g., adjust_hsl_native, apply_color_grade). There are no prerequisites, no mention of selection vs. full-layer scope, and no exclusions. Usage must be inferred entirely 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.

adjust_hslA

Shift hue, saturation, and lightness on an opaque cel while preserving alpha.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
hue_shiftNo
layer_nameYes
frame_indexYes
lightness_shiftNo
saturation_shiftNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden; it does add useful context by constraining the operation to an opaque cel and stating that alpha is preserved. However, it omits whether the edit is in-place, reversible, what happens to semi-transparent pixels, and what the tool returns.

Agents need to know what a tool does to the world before 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 action, and no filler. Every clause adds relevant information: target, operation, scope, and preserved channel.

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 no output schema and no annotations, the description is adequate but thin. The core operation is clear enough to invoke, but an agent is left without return-behavior or failure-mode expectations.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It conveys the conceptual mapping from hue/saturation/lightness to the three shift parameters, but it does not explain the identifier parameters (filename, layer_name, frame_index) or the bounds/clamping behavior beyond what the schema already shows.

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 ('Shift') with a concrete resource ('opaque cel') and names the affected properties (hue, saturation, lightness), plus the alpha-preservation constraint. This clearly distinguishes it from nearby color tools like adjust_brightness_contrast and invert_colors.

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 is given for when to use this tool instead of related tools such as adjust_hsl_native, adjust_brightness_contrast, replace_color, or apply_color_grade. The 'opaque cel' phrase is the only implicit scoping, with no exclusions or prerequisites.

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

adjust_hsl_nativeC

Apply Aseprite native hue, saturation, and lightness adjustment.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
hueNo
widthNo
heightNo
filenameYes
lightnessNo
layer_nameNo
saturationNo
frame_indexNo

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only restates the operation. It does not disclose whether the adjustment is destructive, whether it applies to a region/layer/frame, what 'native' implies about behavior, or any side effects. This is a mutation tool with zero 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.

Conciseness3/5

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

The description is a single, front-loaded sentence with no filler, but it is under-specified. It conveys only the basic operation and omits all parameter and usage context, so the brevity comes at the expense of completeness.

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

Completeness1/5

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

For a tool with 10 parameters, no schema descriptions, no output schema, and no annotations, this one-line description is clearly inadequate. An agent cannot know the spatial scope, layer/frame targeting, or the meaning of 'native' in Aseprite context, leaving most invocation-critical information missing.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not compensate. It mentions hue, saturation, and lightness but gives no meaning for filename, x, y, width, height, layer_name, frame_index, nor any guidance on ranges or interaction. An agent has to infer the role of 7 undocumented 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 concrete operation ('Apply Aseprite native hue, saturation, and lightness adjustment') with a specific verb and resource. However, it does not explicitly distinguish itself from the sibling 'adjust_hsl' tool, relying on the word 'native' to imply 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?

Provides no guidance on when to use this tool versus alternatives like 'adjust_hsl' or other color-adjustment tools. No exclusions, prerequisites, or context are given, so an agent cannot decide between this and its siblings.

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

animation_sanitizeD

Normalize animation cels and optionally repair out-of-range activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
end_frameNo
layer_namesNo
layer_orderNo
report_celsNo
report_onlyNo
start_frameNo
max_overlapsNo
ensure_layersNo
include_statsNo
overlap_pairsNo
report_boundsNo
max_out_of_rangeNo
layer_frame_rangesNo
out_of_range_actionNoset_opacity_zero
out_of_range_opacityNo
ignore_full_canvas_overlapsNo

TDQS

D1.9/5.0
Behavior1/5

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

Annotations are absent, so the description must disclose behavioral traits. It only says 'Normalize' and 'repair,' implying mutation, but it does not state whether the file is modified in place, what happens to out-of-range cels, whether it is destructive, or what the return value looks like. This is a critical gap for a tool that clearly alters animation data.

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

Conciseness2/5

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

The description is a single sentence with no wasted words, which is concise. However, it is severely under-specified and lacks structure – there is no front-loading of key information like side effects or typical invocation context. The brevity is not an asset because it omits essential details.

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

Completeness1/5

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

Given the high parameter count (17), no annotations, and no output schema, the description is grossly incomplete. An agent cannot correctly call this tool without understanding what each parameter does, what the repair action entails, or what the expected outcome is. This is far below the minimum viable level.

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

Parameters1/5

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

Schema description coverage is 0% – the schema provides only types and constraints, no descriptions. The tool description does not mention any of the 17 parameters, so it adds no meaning beyond what the schema already shows. Parameters like 'out_of_range_action' and 'layer_names' are opaque without context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Normalize') and resource ('animation cels') and mentions an optional repair action. It distinguishes from siblings like inspect_animation_quality or normalize_sprite by focusing on cels and out-of-range activity, though the exact meaning of 'normalize' is not defined.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus any alternative. It does not mention prerequisites, typical use cases, or conditions under which the repair option should be chosen. With 17 parameters and no context, an agent cannot decide when to invoke it.

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

animation_workflow_guideA

Return a concise deterministic guide for character, environment, or general animation workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault
use_caseNocharacter

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden and does add useful traits: the result is 'deterministic' and 'concise,' and 'Return' implies a read-only action. However, it does not describe the response format, error behavior, or any side effects, leaving some uncertainty.

Agents need to know what a tool does to the world before 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. Every word earns its place: it states the action, the output nature, and the supported workflow domains.

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 low complexity with one optional parameter, but there is no output schema or annotations, so the description is the only behavior source. It provides enough to invoke the tool by choosing among character/environment/general, but it leaves the actual guide contents and exact return representation unspecified.

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?

The schema's only parameter, use_case, has no description (0% coverage), so the description must compensate. It names the three workflow categories—character, environment, and general—that map to likely input values, giving an agent meaningful guidance beyond the bare 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 action ('Return') and a concrete object ('concise deterministic guide'), then scopes it to character, environment, or general animation workflows. This clearly distinguishes the tool from sibling tools that perform direct edits, generation, or inspection.

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 'for character, environment, or general animation workflows' gives clear contextual guidance on when to use this tool. It does not explicitly name exclusions or alternative tools, but the domain and purpose are clear enough for selection.

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

apply_color_gradeC

Apply deterministic brightness, contrast, and saturation grading to a sprite.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
contrastNo
brightnessNo
saturationNo
input_filenameYes
output_filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations are absent, so the description alone must disclose side effects and behavior. It adds the useful trait 'deterministic,' but does not state whether the source sprite is modified, whether a new output file is created, which formats are supported, or whether the operation is reversible/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?

The single sentence is economical and front-loads the core action and deterministic nature, with no filler. However, the extreme brevity comes at the cost of omitting necessary parameter and usage 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?

For a 6-parameter tool with no annotations and no output schema, the description is too thin. It leaves out input/output file behavior, supported formats, value semantics, and the relationship to sibling adjustment tools, making correct invocation uncertain.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only repeats the names brightness, contrast, and saturation without explaining their meaning or relationships. It does not clarify input_filename/output_filename semantics, the format enum, or how values like contrast=1 and saturation=1 should be interpreted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Apply') and identifies the resource ('a sprite') plus the exact operations involved ('brightness, contrast, and saturation grading'). It is clear enough to distinguish the general purpose from unrelated siblings, though it does not explicitly differentiate from overlapping adjustment 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?

No guidance is given about when to use this tool versus siblings like adjust_brightness_contrast, adjust_hsl, or apply_convolution. The description implies a combined color-grading use case, but there are no explicit alternatives, conditions, or exclusions.

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

apply_convolutionC

Apply a built-in Aseprite convolution matrix to a layer and frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
widthNo
heightNo
matrixYes
filenameYes
layer_nameNo
frame_indexNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must carry the safety/behavior disclosure. It does not state that applying a convolution matrix overwrites layer pixels, whether it respects selections/bounds, or whether the operation is reversible. The sentence implies pixel modification but gives no side-effect or state-change 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, no filler, and the operation is front-loaded. Efficient, though the brevity comes at the cost of substance captured by other dimensions.

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

Completeness1/5

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

For a tool with 8 parameters, no annotations, and no output schema, a single sentence is materially incomplete: required filename is absent, region parameters are unexplained, and available matrix names are not referenced. An agent has little basis for a correct first call.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only echoes the param names 'layer' and 'frame' plus the 'built-in' nature of matrix. Required filename and the x/y/width/height region controls are left undefined, so it does not compensate for the schema gap.

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 the exact verb ('apply'), resource ('built-in Aseprite convolution matrix') and target ('layer and frame'), which is sufficient to differentiate it from sibling list_convolution_matrices and apply_dither_pattern. It is compact but unambiguous.

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 tool over alternatives, nor any mention of the sibling list_convolution_matrices for discovering available matrix values. Prerequisites are absent; the only context is the operation itself.

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

apply_depth_lightingA

Apply deterministic depth-aware directional lighting to a sprite while preserving transparency and source data.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
ambientNo
strengthNo
directionYes
input_filenameYes
output_filenameYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It adds useful behavioral information by stating the operation is 'deterministic' and that it preserves transparency and source data, implying non-destructive output. It omits important prerequisites, such as whether a depth or normal map is required, how unsupported inputs are handled, or the exact result of applying lighting.

Agents need to know what a tool does to the world before 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. Every qualifier—deterministic, depth-aware, directional, preserving transparency and source data—adds meaningful information and earns its place.

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?

Given six parameters, no annotations, no output schema, and zero schema descriptions, this definition is too sparse to fully support correct invocation. An agent cannot tell what depth information the tool relies on, how the parameters interact, or what output behavior to expect beyond writing to output_filename.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it does not explain any parameter specifically. It only gestures at 'directional' and never clarifies how ambient, strength, or format affect the result; the agent must rely entirely on parameter names, enums, and defaults 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 uses a specific verb ('Apply') and resource ('sprite') with precise qualifiers: 'deterministic depth-aware directional lighting.' This clearly distinguishes it from lighting-adjacent siblings like generate_normal_map, apply_convolution, or generate_sprite_shadow without needing 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 clear use case—adding directional depth lighting to a sprite—and notes that transparency and source data are preserved. However, it does not explicitly say when to prefer this tool over alternatives or provide any exclusions, so usage guidance remains inferential rather than explicit.

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

apply_dither_gradientC

Fill a rectangle with a two-color Bayer-dithered gradient.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
widthYes
heightYes
filenameYes
color_endYes
horizontalNo
layer_nameYes
color_startYes
frame_indexYes
create_if_missingNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description bears the full burden. It indicates a mutating fill operation, but does not disclose whether existing pixels are overwritten, how coordinates are interpreted, what happens when the layer/frame is missing, or any default behavior such as create_if_missing. Side effects remain 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?

The description is a single front-loaded sentence with no filler or repetition. It is efficient, though its brevity comes at the cost of missing parameter and context details that would make it more helpful.

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 11 parameters, no annotations, and no output schema, a one-sentence description is not enough. The agent is left to infer usage, side effects, and distinguishing behavior from parameter names alone, which is especially risky given the large sibling list of gradient, drawing, and dither tools.

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

Parameters2/5

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

Schema description coverage is 0% and the description names no parameter. 'Rectangle' loosely hints at x/y/width/height and 'two-color' hints at color_start/color_end, but there is no explanation of coordinate meaning, color format, or the optional horizontal and create_if_missing parameters. The description does not compensate for the schema's lack of documentation.

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 ('Fill'), a specific target ('rectangle'), and a distinct method ('two-color Bayer-dithered gradient'). This clearly differentiates it from non-dithered gradient tools like apply_gradient_rect and generic pattern tools like apply_dither_pattern, even without explicitly naming a sibling.

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 is given for when to use this tool over alternatives. The description does not mention apply_gradient_rect, apply_dither_pattern, draw_rectangle, or any conditions, prerequisites, or exclusions, leaving selection entirely to the agent's inference.

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

apply_dither_patternC

Fill a rectangle with a uniform Bayer-dithered mix of two colors.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
widthYes
heightYes
color_aYes
color_bYes
densityNo
filenameYes
layer_nameYes
frame_indexYes
create_if_missingNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says 'Fill' which implies a mutating operation, but it doesn't disclose whether it creates the layer if missing (though create_if_missing param hints at it), whether it overwrites existing pixels, how density affects the pattern, or what happens with out-of-bounds coordinates. The description adds minimal behavioral context beyond the operation itself.

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, no waste, and the key concepts (rectangle, uniform Bayer dither, two colors) are front-loaded. It's appropriately concise for a simple operation, though it could add a bit more detail without becoming bloated.

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 an 11-parameter tool with no annotations and no output schema, the description is too thin. It doesn't explain the density parameter's role, the create_if_missing behavior, or how this relates to the layer/frame system. An agent would need to inspect the schema and guess at semantics for most parameters.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'two colors' (color_a, color_b) and 'rectangle' (x, y, width, height), but doesn't explain density, create_if_missing, frame_index, or layer_name semantics. The description adds some meaning for 2 of 11 parameters but leaves the rest undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Fill'), a resource ('a rectangle'), and the method ('uniform Bayer-dithered mix of two colors'). It clearly distinguishes from the sibling 'apply_dither_gradient' by specifying 'uniform' and 'two colors'. However, it doesn't explicitly name the sibling or contrast with it, so it's 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 Guidelines3/5

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

The description implies usage: when you need a dithered fill of a rectangle with two colors. It doesn't explicitly state when to use this vs. alternatives like apply_dither_gradient, draw_rectangle, or fill_area. The context is clear enough for an agent to infer, but no explicit when/when-not guidance is given.

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

apply_enhancement_batchA

Enhance up to 24 assets in one deterministic batch, isolating per-file failures and preserving every source.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
goalsNo
itemsYes
max_colorsNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does so well: 'deterministic', 'isolating per-file failures', and 'preserving every source' are meaningful behavioral guarantees beyond the raw schema. It does not cover all possible side effects, but it discloses the most important traits.

Agents need to know what a tool does to the world before 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 one tight sentence that front-loads the action and packs in the three most important behavioral constraints: batch size, determinism, and failure isolation. There is no filler or repetition of schema fields.

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 tool with no annotations and no output schema, the description would ideally explain expected results or per-file return behavior. It covers failure isolation but not what the caller receives, and it leaves meaningful parameter semantics to the schema. It is adequate but not complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. It only adds 'up to 24' (mirroring maxItems) and 'deterministic' (loosely related to seed), leaving goals, seed, max_colors, and output_filename semantics unexplained. The schema's enums and defaults help, but the description does not carry its share.

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 ('Enhance'), a resource ('assets'), a scope ('up to 24'), and a batch mode. It also distinguishes itself from single-asset or non-deterministic tools by adding 'in one deterministic batch', which helps separate it from siblings like apply_enhancement_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?

The phrase 'up to 24 assets in one deterministic batch' gives clear context for when this tool is appropriate: multi-asset enhancement with deterministic output and per-file failure isolation. It does not explicitly name alternatives or exclusions, but the batch/cap language provides usable usage context.

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

apply_enhancement_planB

Apply a deterministic enhancement plan to a new output file while preserving the source asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
goalsNo
formatNopng
filenameYes
max_colorsNo
output_filenameYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description must disclose side effects itself. It does usefully state that the tool is deterministic, creates a new output file, and preserves the source asset. However, it does not explain what happens if the output file exists, whether the plan is provided as a parameter or referenced elsewhere, or what the tool returns on success or 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?

The description is a single tight sentence with no filler, and the most important behavioral facts are front-loaded. It loses a point only because it omits enough substantive detail that the conciseness comes at the cost of usefulness.

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 6-parameter tool with no output schema and no annotations, yet the description does not explain what an enhancement plan is, where it comes from, or how the parameters influence the result. The minimal 'new output file while preserving source' context is helpful but far from sufficient for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no parameter-level meaning. It does not clarify that filename is likely the source asset, output_filename is the new file, or what goals, seed, max_colors, and format control. The enum values for goals are left entirely unexplained.

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 concrete action ('Apply'), a specific resource ('enhancement plan'), and the target behavior ('to a new output file while preserving the source asset'). This clearly distinguishes it from the sibling apply_enhancement_batch, which operates on multiple items, and from suggest_enhancement_plan, which only creates a plan.

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 about when to use this tool versus suggest_enhancement_plan or apply_enhancement_batch. The phrase 'deterministic enhancement plan' implies a prior plan exists, but the description never states that precondition or any alternative-selection condition.

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

apply_gradient_rectA

Apply a horizontal or vertical linear gradient to a rectangle on a named layer and animation frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
widthYes
heightYes
filenameYes
color_endYes
horizontalNo
layer_nameYes
color_startYes
frame_indexYes
create_if_missingNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not explain the effect of create_if_missing, whether existing pixels are overwritten, coordinate semantics, or whether the operation is destructive. For a mutation tool, this is a significant 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?

The description is a single sentence with no filler. It front-loads the action and target, and every phrase contributes to the core purpose.

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 11 parameters, 9 required, no output schema, and no annotations, this one-sentence description is insufficient. It omits orientation defaults (horizontal defaults to true), layer creation behavior, coordinate interpretation, and expected return values, making correct invocation difficult.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any of the 11 parameters by name. It only conveys the general concept of a gradient rectangle, leaving agents to infer the meaning of color_start, color_end, horizontal, create_if_missing, and coordinate fields from names alone.

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 operation ('Apply'), the gradient type ('horizontal or vertical linear gradient'), the target shape ('rectangle'), and the target context ('named layer and animation frame'). This clearly distinguishes it from related drawing tools like draw_rectangle and apply_dither_gradient.

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 implies when to use it: when a linear gradient rectangle is needed on a specific layer/frame. However, it does not explicitly mention alternatives or exclusions, leaving some selection burden on the agent.

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

apply_material_textureC

Apply deterministic water, earth, grass, stone, or snow granularity while preserving transparency and source data.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYes
formatNo
materialYes
intensityNo
input_filenameYes
output_filenameYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It usefully states that results are deterministic and that transparency and source data are preserved, which are meaningful operational traits. However, it does not say whether the input file is overwritten, whether a new output file is written, what format constraints apply, or what failure modes exist.

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, compact sentence with no filler, and it front-loads the tool's material set and key guarantees. The term 'granularity' is somewhat vague, but overall the length is appropriate for the information provided.

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 tool with no annotations, no output schema, and 0% schema description coverage, the description is too thin to fully support correct invocation. It does not explain the intensity parameter, seed behavior, format handling, or whether the result replaces the input or produces a new file, and the large sibling list contains many apply_* tools with no exclusionary guidance.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only restates the material enum and adds no explanation for seed, intensity, format, input_filename, or output_filename. The agent is left to infer the role of output_filename and the meaning of determinism in relation to seed from parameter names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Apply') and clearly enumerates the supported materials (water, earth, grass, stone, snow), so an agent can tell what resource it operates on. It does not explicitly contrast itself with sibling image-processing tools like apply_convolution or generate_seamless_texture, but the name and material list make the core intent reasonably clear.

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 generate_seamless_texture, apply_dither_pattern, or apply_pixel_outline. The description implies an image-processing context but provides no when-to-use, when-not-to-use, or prerequisites, so an agent must infer selection from the name and materials alone.

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

apply_palette_presetC

Apply a built-in retro palette preset to the sprite.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYes
filenameYes

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but does not explain side effects (e.g., whether it modifies the sprite in place, affects all frames, requires an existing sprite, or returns a result). This is insufficient 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.

Conciseness3/5

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

The description is a single sentence, which is concise and front-loaded. However, it is so brief that it omits critical usage and parameter details, making it less effective. It earns its place but could be more informative without becoming verbose.

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

Completeness1/5

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

For a tool with two required parameters, no output schema, and no annotations, the description is incomplete. It does not explain how to specify the preset or what the expected outcome is. An agent would struggle to invoke it correctly without additional information.

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

Parameters1/5

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

Schema coverage is 0%, and the description does not clarify the parameters. It hints at the preset parameter by mentioning 'built-in retro palette preset' but does not list valid preset values or explain what 'filename' refers to. No guidance on parameter format or required context.

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 'apply' with a clear resource 'built-in retro palette preset' and target 'sprite'. This clearly distinguishes it from siblings like list_palette_presets (which lists) and set_palette (which sets a palette directly). It is unambiguous what the tool does.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as set_palette, list_palette_presets, or extract_palette. The description does not mention prerequisites, typical use cases, or situations where this tool should be preferred over others.

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

apply_pixel_outlineC

Add a deterministic pixel outline around opaque sprite edges.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorYes
formatNo
thicknessNo
input_filenameYes
output_filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral disclosure burden, but it only says 'Add a deterministic pixel outline.' It does not disclose whether the tool writes to output_filename, modifies inputs, handles transparency/alpha, or what happens with formats, thickness, or missing colors. 'Deterministic' is a small transparency gain, but significant behavioral context 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.

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 conveys the core behavior and a key property ('deterministic') in minimal space, which is appropriate for conciseness even though more detail is needed elsewhere.

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?

Given 5 parameters, no output schema, no annotations, and 0% schema coverage, this description is too sparse for an agent to confidently invoke the tool. It omits which fields are required, how thickness interacts with the outline, what format defaults to, and what the result looks like. The moderate complexity of the tool demands more operational context than one sentence provides.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning for any of the 5 parameters. It does not mention color, thickness, format, or how input_filename/output_filename relate to the operation. The schema provides structural constraints, but the description fails to compensate for the complete absence of parameter-level guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Add') and resource ('pixel outline around opaque sprite edges'), and 'deterministic' adds useful precision. It does not explicitly distinguish itself from closely related siblings like outline_native or apply_convolution, but the phrase 'opaque sprite edges' gives enough scope for a clear purpose.

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 is provided for when to use this tool versus alternatives such as outline_native, generate_sprite_shadow, or apply_convolution. The description does not state any exclusions, prerequisites, or conditions that would help an agent choose this tool over its siblings.

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

audit_animationC

Audit animation cels, overlaps, and declared frame ranges.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
end_frameNo
layer_namesNo
report_celsNo
start_frameNo
max_overlapsNo
overlap_pairsNo
report_boundsNo
max_out_of_rangeNo
layer_frame_rangesNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions 'audit' without clarifying whether it is read-only, whether it modifies the file, what it returns, or any side effects. This is a significant gap for a tool that likely produces a report or validation results.

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 a single, efficient sentence, which is concise and front-loaded. However, it is so short that it provides minimal additional value beyond the tool name, and it does not structure any additional context. It is not verbose but also not sufficiently informative.

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

Completeness1/5

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

Given the tool has 10 parameters, no output schema, and no annotations, the description is grossly inadequate. An agent cannot determine how to invoke the tool correctly, what inputs are expected, or what the output will be. The description fails to cover essential context 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.

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate by explaining the parameters. It only mentions 'cels, overlaps, and declared frame ranges,' which hints at the tool's purpose but does not explain any of the 10 parameters like filename, start_frame, end_frame, layer_names, report_cels, max_overlaps, overlap_pairs, report_bounds, max_out_of_range, or layer_frame_ranges. The description adds almost 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?

The description states a specific verb (Audit) and resources (animation cels, overlaps, declared frame ranges), which clearly distinguishes it from other audit tools like audit_asset_library. However, it does not explicitly tie it to a file or sprite, though the name and context imply it. It is clear enough for an agent to know the tool's function.

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 guidance on when to use this tool versus alternatives such as inspect_animation_quality or animation_sanitize. It only states what it does, not the conditions under which it is the preferred choice. An agent must infer usage from the name and sibling tools.

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

audit_asset_libraryA

Audit library ids, preset references, categories, folders, and navigable asset paths before composing a scene.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral disclosure burden. It lists what is audited, implying a read-only inspection, but does not disclose what an audit produces, whether it can fail, or whether it has any side effects. 'Audit' weakly suggests non-destructive behavior, but the agent is left guessing about 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?

A single sentence with an active verb, a precise list of audited resources, and a useful temporal context ('before composing a scene'). There is no filler or redundant restatement of the tool name.

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 there is no output schema and no annotations, the description should explain what the agent will receive or what a completed audit looks like. It clearly states scope and timing but omits the tool's result format and any error/failure semantics, leaving a meaningful gap for a tool with no structured output metadata.

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?

The tool has zero parameters and the empty schema fully covers parameter semantics, so there is no additional burden on the description. A baseline of 4 is appropriate; there is no parameter information that could be added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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, 'Audit', and lists concrete resources: library ids, preset references, categories, folders, and navigable asset paths. It is not a tautology and gives a clear sense of what the tool examines. It stops short of a 5 because it does not explicitly distinguish itself from similar-looking siblings like audit_asset_manifest or summarize_asset_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?

The phrase 'before composing a scene' provides a clear temporal/usage context, telling the agent when this tool is relevant. However, it does not state when not to use it or name alternatives such as audit_asset_manifest, so it misses full routing guidance.

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

audit_asset_manifestA

Audit files referenced by a generated manifest, including missing, empty, format, and SHA-256 metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
manifest_filenameYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does reveal the checks performed (missing, empty, format, SHA-256 metadata), which is useful. However, it does not state whether the tool is read-only or mutating, whether it returns a report or fixes issues, or what 'format' validation covers. This leaves meaningful behavior undisclosed.

Agents need to know what a tool does to the world before 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 front-loads the core action and resource, then lists the audit dimensions. Every word earns its place, with no redundant filler or repetition of schema details.

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 one-parameter tool, this is close to adequate: an agent can identify when to use it and what input to provide. However, without annotations or an output schema, the absence of any statement about return values, side effects, or failure behavior leaves a meaningful gap in the round-trip understanding of calling 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 0%, so the description must compensate for the single parameter. It connects manifest_filename to the 'generated manifest' concept, which adds some meaning beyond the bare schema. Still, it does not explain what the filename should reference, what file types are expected, or how the manifest locates its files, leaving room for invocation ambiguity.

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 ('audit') and resource ('files referenced by a generated manifest') and enumerates the exact audit dimensions: missing, empty, format, and SHA-256 metadata. This clearly differentiates it from related siblings like audit_asset_library or inspect_asset_batch, which target different resources or 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 intended use case is implied: use when a generated manifest exists and its referenced files need validation. However, there is no explicit guidance about when not to use it, what prerequisites exist, or how it compares to nearby audit/inspect tools such as audit_asset_library or inspect_asset_bundle. The agent must infer routing from context.

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

batch_asset_jobC

Run several compact asset recipes in order or return one batch plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobsYes
dry_runNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only hints at 'in order or return one batch plan' but does not disclose side effects, default dry_run behavior, failure handling, or whether jobs execute asynchronously.

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 compact sentence with a front-loaded verb and no filler. It is efficient, though it sacrifices useful detail for brevity.

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?

Given moderate complexity, no annotations, and no output schema, the description is incomplete. It omits dry_run semantics, job ordering guarantees, error behavior, and how results or a batch plan are returned.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it does not explain the jobs array structure or the dry_run parameter. The phrase 'or return one batch plan' weakly implies dry-run behavior, but the agent cannot reliably map that to dry_run=true.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Run') and resource ('several compact asset recipes'), and clarifies the batch/planning scope. It distinguishes this from single-recipe siblings like run_asset_recipe, though it does not disambiguate from similar batch/job tools such as start_asset_job.

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 explicit guidance on when to use this tool versus alternatives like run_asset_recipe, execute_asset_recipe, or start_asset_job. The description also does not explain when an agent should set dry_run versus run the jobs for real.

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

build_animation_sheetA

Assemble all frames of a PNG or GIF into a deterministic PNG spritesheet and write coordinates, bottom-center pivots, and delays to a manifest.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnsNo
paddingNo
input_filenameYes
output_filenameYes
manifest_filenameYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden, and it does well: 'deterministic' discloses ordering/reproducibility guarantees, and it explicitly states that coordinates, bottom-center pivots, and delays are written to a manifest. It does not mention overwrite behavior or failure conditions, but the core side effects are clear.

Agents need to know what a tool does to the world before 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 front-loads the action and output, with every clause adding useful information: determinism, file formats, spritesheet output, and manifest contents. No filler or redundant restatement 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?

For a tool with five parameters and no output schema, the description covers the essential calling context: input formats, output format, and what the manifest contains. It is slightly incomplete on column/padding behavior and manifest format details, but an agent can meaningfully invoke the tool with the information provided.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies that input_filename accepts a PNG or GIF, output_filename is a PNG spritesheet, and manifest_filename holds coordinates, pivots, and delays. However, columns and padding are not explained at all beyond the schema's numeric constraints and default.

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 action (assemble), a resource (frames of a PNG or GIF), and a concrete deliverable (deterministic PNG spritesheet plus manifest with coordinates, bottom-center pivots, and delays). It is distinct enough from siblings like build_contact_sheet or export_spritesheet because it emphasizes animation metadata and determinism.

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 'Assemble all frames of a PNG or GIF' implies when this tool applies, and the mention of a manifest implies it is for animation workflows rather than simple spritesheets. However, there is no explicit when-not-to-use guidance or alternative routing to siblings such as build_contact_sheet or export_spritesheet.

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

build_contact_sheetC

Fit heterogeneous sprite previews into a deterministic nearest-neighbor contact sheet and write a navigable JSON manifest.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnsNo
paddingNo
cell_widthYes
cell_heightYes
input_filenamesYes
output_filenameYes
manifest_filenameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does reveal determinism and the creation of a JSON manifest, but it omits important behavior such as whether existing output files are overwritten, whether input files must exist, or what happens 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?

The description is a single, dense sentence with no wasted words and front-loads the core purpose. It is well-structured, though it sacrifices useful parameter and usage detail for brevity.

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?

Given 7 parameters, no annotations, no output schema, and a large sibling toolset, this one-sentence description is not complete enough for an agent to invoke the tool correctly with confidence. The manifest structure, layout semantics, and relationship to similar sheet-building tools are all unspecified.

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

Parameters1/5

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

The schema has 0% parameter description coverage and the description does not compensate. None of cell_width, cell_height, columns, padding, or the filename parameters are explained beyond their names, leaving the agent to guess layout semantics and expected formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the tool's job: fitting heterogeneous sprite previews into a nearest-neighbor contact sheet and writing a JSON manifest. It is specific about the resource and output, but it does not explicitly differentiate itself from close siblings like build_animation_sheet or export_spritesheet.

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 tool over alternatives such as build_animation_sheet, export_spritesheet, or inspect_asset_batch. No use-case context, exclusions, or sibling comparisons are provided.

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

build_scene_bundleC

Build a static PNG scene, animated GIF scene, and both navigation manifests through one deterministic operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
framesNo
heightYes
paddingNo
delay_msNo
item_idsYes
output_prefixYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It only states 'deterministic operation' which hints at predictability but does not mention side effects, required permissions, output structure, or any state changes. This is a significant gap for a tool that builds multiple outputs.

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 sentence with no fluff, clearly stating the core purpose. It is appropriately concise but lacks the depth needed to cover parameters or usage context. It is well-structured for the little it conveys.

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

Completeness1/5

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

For a tool with seven parameters (four required) and no output schema, this description is woefully incomplete. It does not explain what the outputs look like, what the parameters control, or any prerequisites. An agent would not know how to call this tool correctly without additional information.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain any of the seven parameters (item_ids, output_prefix, width, height, frames, padding, delay_ms). An agent cannot infer parameter semantics from the description alone, making this nearly useless for parameter understanding.

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 clearly states the specific outputs (static PNG scene, animated GIF scene, navigation manifests) and the deterministic nature, which distinguishes it from sibling tools like export_animation_gif or build_animation_sheet. It is specific about the resource and action.

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 guidance on when to use this tool versus alternatives like build_animation_sheet or export_animation_gif. It does not mention any conditions, exclusions, or context that would help an agent choose this tool over others.

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

build_sprite_runtime_bundleC

Build one deterministic runtime bundle with an animation sheet, timing manifest, and sprite hitbox manifest.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnsNo
hitbox_modeNocomponents
sheet_paddingNo
hitbox_paddingNo
input_filenameYes
sheet_filenameYes
min_component_pixelsNo
sheet_manifest_filenameYes
bundle_manifest_filenameYes
hitbox_manifest_filenameYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose one useful trait, 'deterministic', and indicates the bundle contains three artifacts, but it does not state whether files are written or overwritten, whether this is a pure build vs. an in-place mutation, or what side effects may occur. For a build/mutation-style tool without annotations, this is a significant 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?

The description is a single, tight sentence that front-loads the core purpose and key output contents. It contains no filler or redundant restatement of the tool name, making it both concise and useful.

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?

Given the high parameter count (10), five required parameters, no annotations, and no output schema, this short description is not complete enough. An agent can grasp the high-level purpose, but cannot confidently determine how the required filenames map to inputs/outputs, how optional parameters affect the result, or what the tool returns. More operational context is needed.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds very little about the 10 parameters. It does suggest that filenames relate to the animation sheet, timing manifest, and hitbox manifest, but it does not explain input_filename, columns, hitbox_mode, sheet_padding, hitbox_padding, or min_component_pixels. Parameter names are somewhat self-explanatory, but the description itself does not compensate for the missing schema 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 names a specific verb ('Build') and a specific resource ('deterministic runtime bundle'), and clarifies the bundle's contents: animation sheet, timing manifest, and sprite hitbox manifest. It distinguishes itself from similar build/export tools like build_scene_bundle or export_spritesheet through the 'runtime bundle' framing, 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 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 like build_animation_sheet, build_scene_bundle, or export_spritesheet. There is no mention of prerequisites, intended use cases, or exclusions, leaving the agent to infer applicability from the tool name and general phrasing.

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

build_terrain_tilesetC

Build a deterministic terrain tileset with adjacency variants and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
paletteNo
terrainsYes
tile_sizeYes
outline_colorNo
output_filenameYes
manifest_filenameYes

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses 'deterministic' (a useful trait) and implies output includes adjacency variants and metadata, but it does not state side effects (e.g., whether it writes files), return format, or operational constraints like performance or dependencies. This is a significant gap for a generation tool.

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

Conciseness2/5

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

The description is a single sentence with no waste, but it is under-specified rather than concise. It does not front-load the most critical information (parameters, output) and is too terse to be helpful.

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

Completeness1/5

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

The tool has 7 parameters, no output schema, and no annotations. The description provides almost no context about what the tool does beyond a high-level phrase, leaving an agent without enough information to invoke it correctly or interpret results.

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

Parameters1/5

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

Schema description coverage is 0%, and the description mentions none of the seven parameters (seed, palette, terrains, tile_size, etc.). It provides no explanation of their meaning, relationships, or expected values, so it adds zero value beyond the raw 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 clearly states a specific verb ('Build'), a resource ('terrain tileset'), and adds detail ('deterministic', 'adjacency variants', 'metadata') that distinguishes it from broader scene or map generation tools. It is not a tautology, but it does not explicitly name a sibling to differentiate from.

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 generate_world_map, generate_seamless_texture, or generate_biome_transition. The description does not mention conditions, prerequisites, or cases where another tool would be preferred.

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

cancel_asset_jobA

Request cancellation of a queued or running asset job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It conveys intent and target state but does not explain whether cancellation is synchronous or asynchronous, whether it is idempotent, what side effects occur, or how failures are 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?

The description is a single, front-loaded sentence with no filler, redundancy, or unnecessary qualification. Every word contributes to 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?

For a one-parameter tool, the description gives the essential target state, making the call minimally viable. However, with no output schema and no annotations, it omits behavioral details such as expected return value, error conditions for already-completed jobs, and how to verify cancellation success.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented parameter. It adds no information about job_id beyond the parameter name itself, such as where to obtain it, its expected format, or its relationship to status APIs.

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 ('Request cancellation') and a clear resource ('asset job'), and it qualifies the target state ('queued or running'). This distinguishes it from lifecycle siblings like start_asset_job and get_asset_job_status without requiring schema inspection.

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 'queued or running asset job' clearly indicates the conditions under which this tool applies. It does not name alternatives or exclusions, but the state constraint is enough to guide basic selection among the job lifecycle tools.

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

clear_celC

Delete a cel from a named layer and frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
layer_nameYes
frame_indexYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It states the destructive action ('Delete') but doesn't disclose whether deletion is reversible, whether it affects other frames or layers, or what happens if the cel doesn't exist. No mention of return values or 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.

Conciseness4/5

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

The description is a single concise sentence that front-loads the action and resource. It earns its place but could add a bit more context without becoming verbose.

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 mutation tool with no annotations and no output schema, the description is thin. It doesn't explain the cel concept, the effect on the animation, or error conditions. Sibling tools like delete_frame and erase_region suggest related operations, but the description doesn't help an agent choose among them.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'named layer and frame' which maps to layer_name and frame_index, but filename is not mentioned. The description adds minimal meaning beyond the schema's property names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Delete a cel from a named layer and frame' clearly states the action (delete), the resource (cel), and the context (named layer and frame). It distinguishes itself from sibling tools like create_cel, copy_cel, and set_cel_position, though it doesn't explicitly 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 Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like erase_region, delete_frame, or clear_cel-related operations. The description implies usage for deleting a cel but doesn't state prerequisites (e.g., cel must exist) or exclusions.

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

compare_framesA

Compare two flattened animation frames and return changed-pixel metrics as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
frame_aYes
frame_bYes
filenameYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states the output format (JSON metrics) and implies a read-only operation, but does not clarify whether frames are flattened internally, what happens on invalid input, or any side effects. Some useful context (flattened frames) is given, but more could be said.

Agents need to know what a tool does to the world before 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 is front-loaded with the purpose and contains no filler. It is concise and easily scanned.

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?

Given three parameters, no output schema, and no annotations, the description is incomplete. It does not specify what 'changed-pixel metrics' includes (e.g., counts, bounding boxes, thresholds), nor does it mention error handling or edge cases. An agent would need more guidance to reliably interpret the result.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It mentions 'two flattened animation frames' which maps to frame_a and frame_b, and 'filename' is implied, but it does not explain that these are integer frame indices or what the filename refers to. The description adds minimal 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 ('Compare'), a clear resource ('two flattened animation frames'), and the output ('changed-pixel metrics as JSON'). It is unambiguous and distinguishes itself from all sibling tools, none of which perform frame comparison.

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 the tool (whenever you need to compare two frames), but provides no explicit context, alternatives, or exclusions. Since there are no other comparison tools among siblings, the usage is fairly obvious, but the description does not articulate it.

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

compose_asset_presetB

Compose one scene preset into compact assets and ordered layers for a single low-token request.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It indicates the output is 'compact assets and ordered layers,' but does not disclose whether the operation mutates state, has side effects, requires specific prior steps, or what happens on invalid preset IDs.

Agents need to know what a tool does to the world before 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. Every phrase—'one scene preset,' 'compact assets,' 'ordered layers,' 'single low-token request'—adds useful information without 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?

For a tool with one parameter and no output schema, the description gives a reasonable summary of input and output, but it omits important context: the definition of a scene preset, whether the operation is read-only or creates/modifies state, and what an agent should do if no preset exists. Sibling context suggests more composition guidance 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?

The schema only defines 'id' as a string with minLength 1 and has no parameter descriptions. The tool description mentions 'one scene preset,' which helps the agent infer that 'id' is a scene preset identifier, but it does not explicitly bind the parameter to that meaning or explain where the ID comes 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?

The description uses a specific verb and resource: 'compose one scene preset' into 'compact assets and ordered layers.' It clearly states the tool's main purpose so an agent can infer what it does, though it does not explicitly differentiate it from sibling tools like compose_asset_scene or compose_asset_scene_animation.

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 usage context: when an agent has a single scene preset and wants a compact, low-token asset/layer result. However, it gives no explicit guidance about when to prefer this over related tools such as compose_asset_scene, generate_asset_preset, or plan_asset_scene.

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

compose_asset_sceneC

Compose selected library previews into a deterministic PNG and navigable manifest.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
heightYes
paddingNo
item_idsYes
output_filenameYes
manifest_filenameYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It adds useful context by stating the output is deterministic and includes a manifest, and it implies the operation reads selected library previews. However, it does not disclose side effects such as overwriting files, whether source assets are modified, or behavior on missing/invalid items.

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 sentence with no filler, and the core action and outputs are front-loaded. It is concise, though the density of ideas (deterministic PNG, navigable manifest, selected previews) could benefit from a bit more structure.

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 6-parameter tool with no output schema and no annotations, this description is too sparse. It omits usage distinctions, parameter semantics, and behavioral caveats, leaving the agent to infer too much from sibling names and schema property names alone.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate, but it only loosely maps 'selected library previews' to item_ids and 'PNG'/'manifest' to the filenames. It does not explain how width, height, or padding control layout, or what constraints like the 24-item limit mean in practice.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: composing selected library previews into a deterministic PNG and navigable manifest. It doesn't explicitly differentiate from siblings like compose_asset_scene_animation or plan_asset_scene, but the output format and deterministic qualifier give reasonable distinctiveness.

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 about when to choose this tool over alternatives. The description implies it is for composing previews into a static PNG with a manifest, but it does not contrast with compose_asset_scene_animation, build_scene_bundle, or build_contact_sheet, leaving selection to inference.

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

compose_asset_scene_animationC

Compose selected animated library previews into a deterministic GIF and frame manifest.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
framesNo
heightYes
paddingNo
delay_msNo
item_idsYes
output_filenameYes
manifest_filenameYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavior disclosure. It adds useful context like 'deterministic' and the output artifacts, but does not state whether the tool writes files, whether it is destructive, what input state is required, or what happens on failure. This is a significant gap for a composition 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?

The description is a single concise sentence with a clear subject-action-object structure and no filler. It is not bloated, though its brevity limits the amount of guidance it can provide.

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?

Given the tool's complexity, 8 parameters, no annotations, no output schema, and many closely related siblings, this description is under-specified. It gives the core idea but omits usage context, parameter semantics, file side effects, and the relationship to alternative composition/export tools.

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

Parameters2/5

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

Schema coverage is 0% and the description does not explain the eight parameters. It loosely maps item_ids to 'selected animated library previews' and filenames to 'GIF and frame manifest', but width, height, frames, padding, delay_ms, and manifest details are left undocumented, forcing the agent to guess their meaning.

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 clearly names the action (compose), the resource (selected animated library previews), and the output (deterministic GIF and frame manifest). This distinguishes it well from siblings like compose_asset_scene and export_animation_gif by emphasizing both animation and the manifest artifact.

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 or alternatives. It does not explain when to choose this tool over compose_asset_scene, export_animation_gif, build_animation_sheet, or plan_asset_scene, leaving the agent to infer context from the name and siblings.

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

convert_animation_to_pixel_artB

Convert all image frames to pixel art and preserve animation delays.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
ditherNonone
heightYes
max_colorsNo
resize_modeNobox
input_filenameYes
alpha_thresholdNo
output_filenameYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. It usefully discloses that all frames are converted and delays are preserved, but it does not mention output file overwrite behavior, whether the input is modified, failure conditions, or result format. These are meaningful gaps for a conversion 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 filler. Every word contributes: the operation, the scope, the target style, and the key preservation constraint.

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 tool with 8 parameters, no annotations, and no output schema, this one-clause description is incomplete. It gives a high-level purpose but omits parameter guidance, expected outputs, overwrite semantics, and how to adjust conversion quality or resize behavior.

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

Parameters1/5

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

Schema description coverage is 0%, and the description mentions none of the 8 parameters or their semantics. It does not explain width, height, dither, max_colors, resize_mode, or alpha_threshold, so an agent must infer their meaning from parameter names and enums alone.

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 ('convert'), a specific resource ('all image frames'), and the target style ('pixel art') while adding the distinctive preservation of animation delays. This clearly differentiates it from the sibling convert_image_to_pixel_art, which presumably targets a single image.

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 'all image frames' and 'preserve animation delays' implies this is for animated inputs, which gives some usage context. However, it never explicitly states when to prefer this over convert_image_to_pixel_art or other pixel-art/sprite tools, and it provides no exclusions or alternative routing.

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

convert_image_to_pixel_artB

Convert one image to pixel art with a deterministic shared palette.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
ditherNonone
heightYes
max_colorsNo
resize_modeNobox
input_filenameYes
alpha_thresholdNo
output_filenameYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It does disclose determinism and a shared palette, which is useful, but it does not mention file overwrite behavior, input requirements, or output format. This is thin for a file-conversion 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, tightly worded sentence with no filler. The most distinguishing facts are front-loaded, and every word earns its place.

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 eight parameters, no annotations, and no output schema, this one-sentence description leaves too much unsaid: required parameter roles, enum behavior, and expected output are all missing. An agent gets the high-level purpose but not enough to reliably invoke the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0% and the description mentions none of the eight parameters, their constraints, defaults, or relationships. Terms like 'image' and 'palette' only hint at the domain and do not compensate for the missing parameter guidance.

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 ('Convert'), a single resource ('one image'), and the target result ('pixel art') with a useful qualifier ('deterministic shared palette'). The phrase 'one image' clearly differentiates it from the sibling convert_animation_to_pixel_art.

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 for a single still image rather than an animation, but it does not explicitly say when to use this tool versus alternatives. It names no sibling tools and gives no when-not-to-use conditions, so usage context is only implied.

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

copy_celB

Copy one layer cel to another frame, replacing the destination by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
replaceNo
filenameYes
layer_nameYes
source_frameYes
target_frameYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the burden and does disclose that the destination is replaced 'by default'. However, it does not explain what happens when replace=false, whether source content is preserved, or what the function returns. This is partial transparency for a potentially destructive operation.

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, front-loaded with the action and target. The default replacement behavior adds meaningful detail without padding. Slightly more explicit parameter mapping would improve it, but it earns its place.

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?

Given no annotations and no output schema, the description is too thin for a 5-parameter mutation tool. It lacks details on the replace parameter's semantics, failure conditions, prerequisites (e.g., layer existence), and the behavior when the destination cel contains content. An agent could misuse this tool without more 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 0%, so the description must compensate for meaning. It clarifies the domain ('layer cel') and the default replace behavior, and implicitly maps source_frame/target_frame. Yet it does not explicitly explain the replace parameter's effect or frame indexing conventions, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('copy') and resource ('one layer cel') with a clear source and destination ('to another frame'), and it adds the default replacement behavior. It does not explicitly name sibling tools like copy_frame or copy_sprite, but the layer-cel specificity gives it enough distinctiveness.

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 is given about when to use this tool versus alternatives such as copy_frame, copy_sprite, or propagate_cels. There are no conditions, prerequisites, or exclusions provided, leaving the agent to infer the use case.

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

copy_frameC

Copy all cels from one frame to another frame or append a new frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
overwriteNo
source_frameYes
target_frameNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, but it only restates the core action. It does not disclose what happens when target_frame is omitted, whether overwrite truly replaces existing cels, or how cel properties like position and opacity are preserved.

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 no filler, and the core operation is front-loaded. It is slightly too terse to be fully helpful, but it earns its place and avoids redundancy.

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 mutation tool with four parameters, no output schema, and no annotations, this description leaves too much unstated. An agent cannot confidently determine how to trigger append versus overwrite, or what behaviors to expect when copying into an existing frame.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only implies the roles of source_frame and target_frame. It does not explain filename, overwrite, or the optional nature of target_frame for the append behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 operation—copying all cels from one frame to another—which clearly distinguishes it from single-cel tools like copy_cel. It also includes the append-a-new-frame option, 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 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 related frame/cel tools such as add_frame, duplicate_frame_range, or propagate_cels. No conditions, prerequisites, or exclusions are provided, so the agent must infer appropriate usage.

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

copy_layers_between_spritesC

Copy selected animation layers and cels from one Aseprite document into another.

ParametersJSON Schema
NameRequiredDescriptionDefault
replaceNo
layer_namesYes
source_filenameYes
target_filenameYes
create_missing_framesNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing side effects. It only says 'Copy' and does not mention that the target may be modified, that replace defaults to true, how missing frames are handled, or what happens when layers with matching names already exist in the target.

Agents need to know what a tool does to the world before 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 efficient sentence that front-loads the verb and resource. It contains no filler or redundant restatement of the tool name.

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 cross-document mutation-style tool with no annotations, no output schema, and 0% parameter coverage, but the description provides only the basic operation. An agent lacks essential context about default behaviors, overwrite semantics, and frame handling, so the definition is not complete enough for correct invocation in non-trivial cases.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It vaguely maps 'one Aseprite document into another' to source/target filenames and 'layers' to layer_names, but it says nothing about the replace or create_missing_frames booleans, nor how 'cels' are selected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Copy'), a specific resource ('animation layers and cels'), and a clear destination ('from one Aseprite document into another'). This distinguishes it from within-document siblings like copy_cel and copy_frame, though it does not explicitly name any sibling.

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 about when to use this tool versus alternatives such as copy_sprite, export_layers, or within-document copy operations. The intended use is implied by the action, but no conditions, exclusions, or alternative routing are provided.

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

copy_regionC

Copy a rectangular region to a layer and frame destination.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
widthYes
dest_xYes
dest_yYes
heightYes
filenameYes
layer_nameYes
frame_indexYes
target_layer_nameNo
target_frame_indexNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the high-level operation and does not say whether the source is left untouched, whether the destination area is overwritten or composited, how out-of-bounds coordinates behave, or what the function returns.

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 concise and front-loaded in a single sentence. However, it is under-specified for an 11-parameter operation, so the brevity comes at the cost of useful structure and clarity.

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

Completeness1/5

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

For a tool with 11 parameters, 9 required, no annotations, and no output schema, this description leaves almost every decision to the agent. It does not clarify coordinate frames, defaults, mutation semantics, or return behavior, making it insufficient for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, so the description needed to explain the roles of the 11 parameters. It only hints at a rectangular region and a layer/frame destination, without mapping x/y/width/height to source geometry, dest_x/dest_y to placement, or describing the defaults of target_layer_name and target_frame_index.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Copy') and resource ('a rectangular region') plus a destination ('layer and frame destination'). It is not a tautology and broadly distinguishes the tool from siblings like move_region (copy vs move) and copy_sprite/copy_cel (region vs whole asset), though it does not name 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 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 copy_region instead of related tools such as move_region, erase_region, copy_cel, copy_frame, or draw_rectangle_at. The description implies a copy use case but provides no conditions, exclusions, or alternatives.

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

copy_spriteA

Copy a sprite to another Aseprite document, refusing to overwrite by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
overwriteNo
output_filenameYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It usefully reveals a non-obvious safety behavior: 'refusing to overwrite by default.' However, it does not disclose what happens when overwrite is false and the output exists, whether the destination document must already be open, or the operation's 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 a single, compact sentence with no filler. The core action and the key caveat about overwriting are both front-loaded with maximum efficiency.

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 description is adequate for a straightforward copy operation, but it omits several details an agent may need: whether the destination document is created or must already exist, how filename and output_filename should be specified, and what error or return value occurs when overwrite is refused. Without annotations or an output schema, these gaps are noticeable.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. It does relate 'to another Aseprite document' to output_filename and 'refusing to overwrite by default' to the overwrite parameter, but it leaves the source filename parameter implicit and does not clarify expected formats or paths.

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 clearly states a specific verb ('copy') and resource ('a sprite'), with a precise destination ('another Aseprite document'). This distinguishes it from sibling tools like copy_cel, copy_frame, and copy_region, which operate on smaller elements rather than the whole sprite.

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 clear context: it is for copying an entire sprite across documents, which differentiates it from same-document copy operations among the sibling tools. It does not explicitly name alternatives or provide when-not-to-use guidance, but the intended use case is unambiguous.

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

create_asset_recipeA

Compose a deterministic, reviewable multi-effect asset recipe without executing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
stepsYes
formatNopng
asset_idYes
materialNoearth
directionNosouth_east
output_prefixYes
input_filenameYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure; it does disclose non-execution, determinism, and reviewability. However, it does not state whether composing creates or persists anything, what side effects occur, or what the tool returns.

Agents need to know what a tool does to the world before 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 no filler; the key intent and the execution boundary are front-loaded. Every word earns its place.

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 8 parameters, no output schema, and no annotations, so a single high-level sentence is not enough. The description leaves undefined what a 'recipe' returns, how seed, format, material, and direction influence it, and what the steps represent beyond their enum labels.

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

Parameters1/5

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

Schema description coverage is 0% and the description provides no parameter-level meaning. All 8 parameters, including enums like steps, material, and direction, are left entirely to the schema's bare type and enum definitions.

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 ('Compose ... multi-effect asset recipe') and adds a critical boundary: 'without executing it.' This clearly distinguishes it from sibling execution tools like run_asset_recipe and execute_asset_recipe.

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 'without executing it' gives clear context for when to use this tool rather than an execution sibling, and 'reviewable' signals usage for planning or auditing. It does not explicitly name alternative tools, which keeps it just below a 5.

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

create_canvasC

Create a new Aseprite canvas.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
heightYes
filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, but it only says 'create a new,' implying non-destructive creation without explaining side effects, whether a new document/tab is opened, or whether an existing sprite is required. The word 'new' gives slight confidence of non-overwrite, but no real behavioral detail 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?

A single sentence containing no fluff communicates the core operation immediately. It is appropriately short for the simplicity of the tool, though it could afford a small amount of added context without becoming verbose.

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 three-parameter, no-annotation, no-output-schema tool, the description is thin. It omits behavior, parameter semantics, and return/output expectations, so an agent has to make assumptions about what 'create canvas' modifies and what it produces.

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

Parameters2/5

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

Schema coverage is 0% and the description does not explain width, height, or filename. The Aseprite context makes it plausible they are pixel dimensions and a canvas name, but units, file implications, and relationships are left to inference.

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

Purpose4/5

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

Describes a specific action (create) and resource (new Aseprite canvas), so an agent knows it instantiates a blank canvas rather than modifying an existing one. It does not explicitly contrast with siblings like resize_canvas or crop_canvas, but the verb and 'new' make the intended operation unambiguous.

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 provided. The description does not mention alternatives or state prerequisites, leaving the agent to infer that this is for starting from scratch versus using resize_canvas or import_image_as_layer.

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

create_celA

Create an empty cel at a layer and frame when one does not already exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
filenameYes
layer_nameYes
frame_indexYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations are absent, so the description must carry behavioral information. It usefully discloses the conditional non-overwriting behavior, but does not explain what happens if a cel already exists, how x/y positioning factors in, or any side effects/errors.

Agents need to know what a tool does to the world before 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, tightly worded sentence with no filler or redundancy. Every phrase contributes 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 mutating tool with no annotations, no output schema, and zero parameter documentation, this one-liner is not sufficient. It omits the roles of filename, x, and y, plus any return value or edge-case behavior.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description only references layer and frame. It leaves filename and x/y meanings to inference and does not compensate for the lack of schema-level parameter documentation.

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 an empty cel' at a specific location (a layer and frame). The qualifier 'when one does not already exist' clearly distinguishes this from overwriting or copying operations like copy_cel or clear_cel.

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 for creating a new empty cel where none exists, but does not explicitly state when to prefer this over related sibling tools such as copy_cel or set_cel_position. No exclusions or alternative recommendations are provided.

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

create_character_planC

Create a deterministic, auditable TypeScript plan for a layered character and its Godot exports.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_idYes
output_directoryNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds the traits 'deterministic' and 'auditable', but does not disclose whether the tool writes files, has side effects, requires authentication, or what the return value is. For a tool that 'creates' something, this is an important omission.

Agents need to know what a tool does to the world before 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, tightly worded sentence with no filler. It front-loads the action and the key qualifiers (deterministic, auditable, layered character, Godot exports) and every word earns its place.

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

Completeness1/5

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

Given the lack of annotations, output schema, and any parameter descriptions, this brief purpose statement is grossly insufficient. An agent cannot correctly invoke the tool without understanding what asset_id and output_directory represent, what the returned plan looks like, or whether the tool has side effects. The description does not compensate for any of these gaps.

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

Parameters1/5

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

The input schema has 0% description coverage, and the description does not mention asset_id or output_directory at all. Even the general purpose ('layered character') only vaguely implies what asset_id might mean, leaving the agent to guess the meaning and required format of both 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?

The description states a specific verb ('Create') and a precise artifact ('a deterministic, auditable TypeScript plan') for a clear resource ('a layered character and its Godot exports'). It is distinct from sibling tools like create_scene_plan because it specifies the character focus and Godot export deliverable, so an agent can differentiate it without schemas.

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 explicit guidance on when to use this tool versus alternatives such as create_scene_plan, plan_asset_scene, or generate_asset_preset. There is no mention of prerequisites, exclusions, or context that would help an agent decide between similar plan-generation tools.

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

create_scene_planC

Create a deterministic, auditable TypeScript plan for a tilemap scene and its Godot exports.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_idYes
output_directoryNo

TDQS

C2.9/5.0
Behavior3/5

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

The description adds behavioral context by specifying that the output is deterministic and auditable, and it clarifies that the tool produces a plan rather than directly modifying a scene. However, with no annotations, it still fails to disclose whether files are written, whether the operation is reversible, or what happens to existing plan 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?

The description is a single tight sentence with no filler, front-loaded with the verb and core output characteristics. Every word adds relevant meaning, making it highly concise and well-structured.

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 tool with two parameters, no annotations, and no output schema, the description is too incomplete. It omits parameter semantics, side effects, expected return/output format, and when to use it among closely related scene-planning siblings.

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

Parameters1/5

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

Schema description coverage is 0%, so the description needed to compensate, but it never mentions asset_id or output_directory. The property names are somewhat self-explanatory, yet the description adds no meaning about how they relate to the tilemap scene or Godot exports.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Create') and a specific resource: a deterministic, auditable TypeScript plan for a tilemap scene and its Godot exports. The tilemap and planning focus helps distinguish it from sibling composition/reporting tools, though it does not explicitly name alternatives or boundary conditions.

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 siblings such as plan_asset_scene, compose_asset_scene, or create_character_plan. An agent must infer the intended use case entirely from the tool name and context.

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

create_sliceC

Create a named rectangular slice.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
nameYes
widthYes
heightYes
filenameYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the slice is created on a specific sprite/canvas, whether it overwrites an existing slice with the same name, what coordinate system is used, or what the return value is. The description adds almost no behavioral context beyond the operation name.

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 short sentence with no wasted words. It is front-loaded with the verb and resource. However, it is so terse that it sacrifices useful detail, though conciseness itself is not the problem.

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 tool with six required parameters, no annotations, no output schema, and 0% schema description coverage, the description is far too thin. It does not explain the slice concept, coordinate semantics, target selection, or error conditions. An agent would struggle to invoke this correctly without external knowledge.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for six undocumented parameters. It does not explain that x/y likely define the top-left corner, that width/height must be positive, that name is the slice identifier, or that filename refers to the target sprite. The description adds no parameter-level meaning beyond the schema's basic types and constraints.

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 states a specific verb and resource ('Create a named rectangular slice'), which is clear enough to identify the core operation. However, it does not distinguish this from sibling tools like set_slice_center, set_slice_pivot, list_slices, or delete_slice, and 'slice' is a domain-specific concept that is not elaborated. It is minimally clear but lacks differentiation.

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 is provided about when to use this tool versus alternatives. There is no mention of prerequisites (e.g., an existing sprite or canvas), no exclusions, and no reference to sibling 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.

create_style_bibleC

Create a deterministic visual style contract for sprites and maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
seedNo
paletteYes
filenameYes
base_sizeYes
materialsNo
detail_levelNomedium
outline_colorNo#12243A
light_directionNosouth_east

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. The word 'deterministic' adds some useful context, implying seed-based reproducibility, but the description does not disclose whether this creates a file, returns a structure, modifies existing assets, or has side effects. This is a significant gap for a creation 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?

The description is a single sentence with no filler or redundancy, and the key idea is front-loaded. It is appropriately terse in structure, though it sacrifices substance for brevity.

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

Completeness1/5

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

Given the tool has nine parameters, nested objects, no annotations, and no output schema, this description is far too thin. It does not explain what a style bible is, what the tool returns or writes, how determinism is controlled, or what the required parameters mean. An agent would be guessing.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not compensate at all. None of the nine parameters (filename, id, base_size, palette, seed, materials, detail_level, outline_color, light_direction) are explained or even hinted at beyond the vague 'visual style' phrase. The agent has no help mapping parameters to intent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Create') and a specific resource ('deterministic visual style contract for sprites and maps'). This helps distinguish it from siblings like generate_asset_preset or harmonize_asset_palette. However, 'style contract' is somewhat abstract and could be clearer about what the created artifact actually is.

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 generate_asset_preset, create_asset_recipe, or harmonize_asset_palette. The description states only what it does, not the conditions that make it the right choice.

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

create_tilemap_layerC

Create a tilemap layer and set the Aseprite grid.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
layer_nameYes
tile_widthYes
tile_heightYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states that the tool creates a layer and sets the grid, but does not explain whether an existing file must be open, whether a grid may be overwritten, what tilemap-specific side effects occur, or what happens 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?

The description is a single sentence with no filler, and the primary action is front-loaded. It is efficient but very terse; the lack of supporting detail hurts other dimensions, not conciseness itself.

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 4-parameter mutation tool with no annotations and no output schema, this description is incomplete. It omits prerequisites, parameter semantics, and operational context such as whether the grid applies to the document or the layer and whether existing tilemap data is affected.

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

Parameters1/5

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

Schema description coverage is 0%, so the description needed to compensate by explaining the parameters, but it mentions none. tile_width and tile_height units and their role in the grid are undocumented, and filename and layer_name are only inferable from their names, not from the description or 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 clearly names a specific action and resource: creating a tilemap layer and setting the Aseprite grid. It is more specific than generic layer tools like add_layer or set_tiles, though it does not explicitly contrast it with sibling tilemap tools such as get_tilemap_info or draw_on_tile.

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 is provided about when to use this tool versus alternatives like add_layer, set_tiles, or get_tilemap_info. There are no conditions, prerequisites, or exclusions stated, so an agent must infer intended usage 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.

crop_canvasC

Crop the sprite canvas to a rectangle.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
widthYes
heightYes
filenameYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Crop' implies a mutating operation, but the description does not state that it irreversibly modifies the sprite, how out-of-bounds coordinates are handled, whether the change is applied in place, or what the resulting canvas dimensions will be. This is a significant gap for a destructive operation.

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 terse sentence with no filler and a front-loaded verb. It is structurally clean, though its brevity contributes to the lack of operational detail.

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 five-parameter mutating tool with no annotations, no output schema, and zero schema descriptions, the description is not complete enough. An agent needs to know the coordinate system, the crop behavior relative to the existing canvas, whether the operation is destructive, and how filename maps to a sprite. None of this is addressed.

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

Parameters1/5

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

Schema description coverage is 0% and the description offers no parameter-level meaning. The names x, y, width, and height are self-evident individually, but the description does not clarify coordinate origin, units, whether width and height are relative to x/y, or how filename selects the target sprite. The description fails to compensate for the schema's complete lack of 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 clearly identifies the action ('Crop') and the resource ('sprite canvas') with a specific outcome ('to a rectangle'). It does not explicitly distinguish itself from the sibling resize_canvas, but the term 'crop' conveys a distinct operation well enough.

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 crop_canvas versus related tools such as resize_canvas, move_region, or copy_region. No when-to-use or when-not-to-use context is provided, leaving the agent to infer the use case 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.

delete_frameB

Delete one animation frame while keeping at least one frame in the sprite.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
frame_indexYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It discloses the key safety invariant (the sprite will retain at least one frame), but it does not state whether the operation is irreversible, how frame indices shift after deletion, or what happens if the caller attempts to delete the last frame.

Agents need to know what a tool does to the world before 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 sentence with no filler; the core action is front-loaded and the constraint is appended efficiently. It earns its place without redundant detail.

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 two-parameter delete operation, the description covers the basic purpose and a safety invariant. However, with no annotations and no output schema, the agent is left without guidance on error behavior, whether the deletion is irreversible, and what happens to the remaining frames' indices.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no parameter-level meaning. The names filename and frame_index are self-explanatory, but the description does not clarify indexing conventions (e.g., whether frame_index is 1-based) or what values are valid beyond the schema 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?

The description clearly states a specific action and resource: 'Delete one animation frame' from a sprite. It also adds a unique invariant, 'keeping at least one frame,' which helps distinguish it from sibling frame operations. It does not explicitly contrast with alternatives such as add_frame or delete_tag, so it misses 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 intended use is implied by the action: call this when a single animation frame must be removed while preserving at least one frame. However, the description gives no explicit guidance about when not to use it, nor any mention of alternatives like copy_frame, clear_cel, or set_frame for adjusting frames.

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

delete_layerC

Delete a named layer from an Aseprite document.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
layer_nameYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It indicates a destructive mutation ('Delete') but does not disclose side effects such as whether associated cels are removed, whether the operation is irreversible, or what happens if the layer does not exist. This is a significant gap for 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.

Conciseness3/5

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

The description is extremely short (one sentence) and to the point, but it lacks substance. It is concise but under-specifying, providing no additional value beyond what the tool name already implies. It does not earn its place with useful detail.

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 operation with no annotations and no output schema, the description is incomplete. It does not specify error handling, return values, or behavioral effects on the document. An agent cannot safely predict the outcome or handle failures. This is insufficient for a tool of this nature.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain either parameter. It mentions 'named layer' but does not clarify that 'filename' identifies the document and 'layer_name' identifies the layer. The agent is left to infer meaning from parameter names alone, which is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the action (Delete) and the resource (a named layer from an Aseprite document). It is not a tautology and conveys the core purpose. However, it does not differentiate from sibling delete operations like delete_frame or delete_slice, but the resource type is 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 provides no guidance on when to use this tool versus alternatives such as merge_layer_down, set_layer_visibility, or delete_frame. There is no mention of prerequisites (e.g., layer must exist) or conditions where deletion is appropriate.

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

delete_sliceC

Delete a named slice.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'delete' and does not state whether the change is persistent, whether it removes only slice metadata while leaving pixels intact, or what happens if the named slice does not exist. It is at least clearly destructive, avoiding a score of 1.

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 filler or repetition. It is concise and immediately readable, though it borders on being too terse to fully support selection and invocation.

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, two-parameter operation with no annotations and no output schema, this description is too thin. It omits side effects, file-scoping semantics, error behavior, and return values. An agent could attempt the call, but cannot confidently predict the consequences.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only hints at the 'name' parameter by saying the slice is named. It does not explain 'filename' or how filename and name together identify the slice, so it fails to compensate for the schema's lack of descriptions.

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

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: 'Delete a named slice.' The word 'named' clarifies that the slice is targeted by identifier, and 'slice' distinguishes this from sibling delete_* operations like delete_layer, delete_frame, and delete_tag. It is not a full tautology, but it does not explain what a slice is or explicitly differentiate it from related operations.

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 about when to use this tool versus alternatives such as list_slices, create_slice, or delete_tag. The only implied usage is the imperative 'Delete,' and no exclusions or prerequisites are mentioned.

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

delete_tagC

Delete an existing animation tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation is a deletion, which implies mutation and irreversibility, but it does not disclose whether the deletion is permanent, whether it affects animation frames or cels, whether it requires the file to be saved, or what the response looks like. For a destructive operation with zero annotation coverage, this is a significant 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?

The description is a single short sentence with no filler. It is front-loaded with the verb and resource. However, it is arguably under-specified for a destructive tool, so while concise, it does not earn a 5 because it omits behavioral context that would be more valuable than additional 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?

For a destructive mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It does not explain the effect of deleting a tag, whether the operation is reversible, what happens to frames using the tag, or how the two parameters relate. The sibling set_tag exists, so a brief cross-reference would have substantially improved completeness.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the two parameters (filename and name). The description only mentions 'animation tag' generically and does not explain that 'name' identifies the tag and 'filename' identifies the target animation file. An agent can infer some meaning from the parameter names, but the description adds no explicit semantic value 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 'Delete an existing animation tag' clearly states the verb (delete), the resource (animation tag), and the precondition (existing). It is distinguishable from the sibling set_tag, which creates or updates a tag, and from delete_frame/delete_layer/delete_slice, which target different resources. It does not explicitly name a sibling, but the resource is specific enough that an agent can tell it apart.

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 any exclusions or prerequisites. It does not mention that the tag must exist, what happens if it doesn't, or that set_tag is the counterpart for creating/updating tags. The context is implied by the name and description, but there is no explicit routing or when-not-to-use guidance.

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

draw_circleC

Draw an ellipse-bounded circle.

ParametersJSON Schema
NameRequiredDescriptionDefault
fillNo
colorNo#000000
radiusYes
center_xYes
center_yYes
filenameYes

TDQS

C2.1/5.0
Behavior2/5

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

No annotations are present, so the description must carry the burden of behavioral disclosure. It only says 'Draw', which implies a write operation, but says nothing about file handling, overwriting behavior, coordinate semantics, or expected sprite/canvas state.

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

Conciseness2/5

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

The description is very short, but it is under-specified rather than economically complete. The phrase 'ellipse-bounded' adds confusion without clarifying the tool's behavior or parameters.

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 tool with 6 parameters, no annotations, no output schema, and many closely related siblings, this one-line description is insufficient. It does not explain the role of 'filename', coordinate system, fill/color defaults, or how this differs from the '_at' drawing variants.

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

Parameters1/5

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

Schema description coverage is 0%, and the description names no parameters or their meanings. The schema's property names are somewhat self-explanatory, but the description adds no value beyond those names and does not compensate for the complete lack of schema descriptions.

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 states a verb and resource ('Draw' a 'circle') and the schema's center/radius parameters clarify what it draws. However, the phrase 'ellipse-bounded circle' is confusing and does not differentiate the tool from siblings like draw_ellipse_at or draw_circle_at.

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 about when to use this tool versus alternatives such as draw_circle_at, draw_ellipse_at, draw_rectangle, or fill_area. No context, prerequisites, or exclusions are provided.

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

draw_circle_atC

Draw an ellipse-bounded circle on a named layer and animation frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
fillNo
colorNo#000000
radiusYes
center_xYes
center_yYes
filenameYes
layer_nameYes
frame_indexYes
create_if_missingNo

TDQS

C2.6/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure, but it only says a circle is drawn. It does not mention whether existing pixels are overwritten, what happens if the layer or frame is missing despite create_if_missing, what coordinate system is used, or whether filling and color are part of the default behavior. The description is not contradictory, but it leaves major behavioral expectations 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?

The description is a single short sentence with no filler, and the main action is front-loaded. It earns its place but is not perfectly efficient because 'ellipse-bounded' is unusual jargon that is never explained. Still, this is a concise and well-structured statement.

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

Completeness1/5

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

Given nine parameters, no annotations, zero schema description coverage, and no output schema, a one-sentence description is far from complete. The agent cannot tell what the function returns, whether it mutates existing pixels, how coordinate bounds are handled, or what the defaults of fill/color/create_if_missing mean behaviorally. This is substantially inadequate for reliable tool selection and invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate, but it explains almost none of the nine parameters. 'Center_x,' 'center_y,' and 'radius' are loosely implied by drawing a circle, and 'named layer' maps to layer_name, but fill, color, create_if_missing, frame_index, and filename are given no added meaning beyond their names. The description adds minimal value over the raw 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 action ('Draw'), an object ('an ellipse-bounded circle'), and a target ('a named layer and animation frame'), which makes the core operation clear. It does not explicitly distinguish itself from sibling tools like draw_circle or draw_ellipse_at, though the phrase 'named layer and animation frame' hints at the difference. Overall, the purpose is clear but 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 Guidelines2/5

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

The description provides no guidance on when to choose draw_circle_at versus draw_circle, draw_ellipse_at, draw_rectangle_at, or the many other drawing tools. It does not state prerequisites, such as whether the layer or frame must already exist, nor does it mention any conditions that would make this tool preferable. The agent is left to infer usage context from the tool name and sibling list.

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

draw_ellipse_atC

Draw a filled or outlined ellipse on a named layer and animation frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
fillNo
colorNo#000000
center_xYes
center_yYes
filenameYes
radius_xYes
radius_yYes
layer_nameYes
frame_indexYes
create_if_missingNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action and target, without mentioning side effects like layer creation (create_if_missing), coordinate system, frame indexing (exclusiveMinimum 0 implies 1-based but not stated), color format, or 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?

A single sentence with no wasted words. It front-loads the core action and includes essential distinctions ('filled or outlined', 'named layer and animation frame') without verbosity.

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 tool with 10 parameters, no annotations, and no output schema, the description is far too sparse. An agent cannot determine how to specify position, radius, color, or whether the layer/frame may be created, nor what the tool returns or how it behaves on failure.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'filled or outlined' mapping to the fill parameter and 'named layer and animation frame' mapping to layer_name and frame_index, but it leaves filename, center_x, center_y, radius_x, radius_y, color, and create_if_missing unexplained. This is minimal value for 10 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 clearly states a specific verb ('Draw') and resource ('ellipse'), and notes it is on a named layer and animation frame Sunday. It distinguishes from siblings like draw_rectangle or draw_circle by naming the ellipse shape. However, it doesn't mention the coordinate/position aspect that the 'at' suffix implies, leaving a minor gap in specificity.

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 is given about when to use this tool versus alternatives such as draw_circle_at or draw_rectangle_at. The description only states what it does, not the context in which it should be selected or any exclusions.

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

draw_lineC

Draw a Bresenham line with optional pixel thickness.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1Yes
x2Yes
y1Yes
y2Yes
colorNo#000000
filenameYes
thicknessNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of explaining behavior. It only says a Bresenham line will be drawn; it does not disclose whether pixels are overwritten or blended, which layer is affected, how out-of-bounds coordinates are handled, or whether this mutates the file referenced by filename.

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 concise sentence with no wasted words, and the key functional detail ('Bresenham line') is front-loaded. However, the terseness comes at the cost of useful context, so it is concise but slightly under-specified.

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 mutation tool with seven parameters, no annotations, no output schema, and no parameter descriptions, the description is too sparse to fully support correct invocation. Missing details include coordinate system, target layer/file context, default color behavior, and how this differs from draw_line_at.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate for all seven parameters, but it only hints at thickness ('optional pixel thickness') and the line concept. It does not explain x1/y1/x2/y2 endpoint semantics, the color format, or what filename refers to beyond the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the action ('Draw'), the resource ('a Bresenham line'), and the key optional behavior ('optional pixel thickness'). It is specific enough to separate this from rectangle, circle, and pixel operations, though it does not distinguish itself from the sibling draw_line_at 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 guidance about when to use this tool versus alternatives such as draw_line_at, draw_pixels, or draw_path. The description gives no context about coordinate systems, current-layer behavior, or what distinguishes this variant from the sibling drawing tools.

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

draw_line_atB

Draw a Bresenham line on a named layer and animation frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1Yes
x2Yes
y1Yes
y2Yes
colorNo#000000
filenameYes
thicknessNo
layer_nameYes
frame_indexYes
create_if_missingNo

TDQS

B3/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It reveals the algorithm and target but omits important behavioral details such as side effects, coordinate system, error handling, and prerequisites like whether the layer or frame must already exist.

Agents need to know what a tool does to the world before 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 with zero filler, front-loading the core action and target. The description is appropriately concise for the amount of information it provides.

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 tool with 10 parameters, no annotations, and no output schema, a single sentence is insufficient. Missing context includes coordinate space, behavior when layer/frame is absent, thickness constraints, and whether the operation persists or mutates existing pixels.

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

Parameters2/5

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

Schema description coverage is 0%, and the description indirectly touches only layer_name and frame_index. The other eight parameters (coordinates, color, thickness, create_if_missing) receive no explanatory context beyond their schema names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the operation ('Draw'), the method ('Bresenham line'), and the target ('named layer and animation frame'). It is specific and unambiguous, though it does not explicitly contrast with the sibling draw_line tool, so uniqueness 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?

The 'named layer and animation frame' phrasing implies this tool is for drawing on a specific layer/frame rather than the current one, giving some usage context. However, there are no explicit when-to-use or when-not-to-use instructions, nor any mention of alternatives like draw_line.

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

draw_on_tileC

Draw pixels onto a tilemap tileset tile.

ParametersJSON Schema
NameRequiredDescriptionDefault
pixelsYes
filenameYes
layer_nameYes
tile_indexYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations are entirely absent, so the description carries the full burden of behavioral disclosure. It signals a mutating draw operation but does not state whether existing pixels are overwritten, blended, clipped, or whether the change permanently modifies the tilemap asset.

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 no filler, and it front-loads the core action and target. However, its brevity comes at the cost of substantive guidance, so it is not maximally effective.

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 four-parameter mutating tool with no annotations, no output schema, and zero schema descriptions, one short clause is inadequate. Missing are pixel coordinate semantics, color handling, tile indexing behavior, return values, and side effects, leaving too much to inference.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning for filename, layer_name, tile_index, or pixels. The agent must rely entirely on parameter names and the raw schema, with no guidance about coordinate conventions, color formats, or tile indexing.

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 ('draw pixels') and a specific resource ('a tilemap tileset tile'), which clearly conveys what the tool operates on. This target distinguishes it from sibling drawing tools like draw_pixels or draw_pixels_at, even without explicit sibling naming.

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 usage context is provided. The description does not say when to choose this tool over alternatives such as set_tiles, draw_pixels_at, or draw_pixels, and gives no conditions, exclusions, or prerequisites.

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

draw_pathD

Draw a polyline on a named layer and animation frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo#000000
pointsYes
filenameYes
thicknessNo
layer_nameYes
frame_indexYes
create_if_missingNo

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are present, so the description must disclose behavioral details. 'Draw' implies mutation, but there's no mention of how it interacts with existing content, default behaviors (e.g., create_if_missing), coordinate system, or effects on other cels. The description adds only a terse action with none of the 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.

Conciseness2/5

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

The description is extremely brief (one sentence) but under-specified to the point of being unhelpful. Conciseness is acceptable, but the content is so sparse that it doesn't earn its place—it could be replaced by the tool's name alone.

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

Completeness1/5

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

With 7 parameters, 0% schema coverage, and no output schema or annotations, the description is drastically incomplete. An agent would have no idea how to construct a proper call (e.g., what coordinates are expected, how to specify thickness, what create_if_missing does, or the result of the operation).

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

Parameters1/5

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

Schema description coverage is 0%, and the description fails to explain any parameters. The schema provides names and types, but the meaning of 'points', 'frame_index', 'create_if_missing', etc., is not captured anywhere. The description adds no semantic 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?

The description states a clear verb ('draw') and resource ('polyline on a named layer and animation frame'). It distinguishes itself from draw_line (a single line) and draw_polygon (possibly closed shape) implicitly, though it doesn't explicitly contrast them.

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

Usage Guidelines1/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 vs alternatives like draw_line, draw_polygon, or draw_pixels_at. It doesn't mention prerequisites (e.g., layer/frame existence) or situations where it's preferable.

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

draw_pixelsC

Draw explicit pixels on the active cel.

ParametersJSON Schema
NameRequiredDescriptionDefault
pixelsYes
filenameYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full disclosure burden. It only states that pixels are drawn, without mentioning whether this overwrites existing pixels, how out-of-bounds coordinates are handled, whether blending applies, or what happens if no active cel exists. This leaves important behavioral traits undocumented.

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 concise and front-loaded, with no fluff. However, the brevity comes at the cost of omitting needed parameter and usage context, so it is minimally adequate rather than well-rounded.

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 two-required-parameter tool with no annotations and no output schema, this description is incomplete. An agent still cannot confidently determine how filename selects the target, what coordinate system pixels use, or how 'active cel' is resolved.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate for explaining the parameters, but it does not. It never explains filename, the coordinate space for x/y, or the accepted color format beyond what the schema's type and pattern already state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Draw explicit pixels on the active cel.' It clearly identifies the operation and the target. However, it does not explicitly differentiate from similar sibling tools like draw_pixels_at or draw_line, relying on the phrase 'active cel' to distinguish the 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?

The description gives no guidance on when to use this tool versus alternatives such as draw_pixels_at, draw_rectangle, or fill_area. It also does not state any preconditions, such as needing an active cel or how filename relates to choosing the target sprite.

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

draw_pixels_atC

Draw explicit pixels on a named layer and animation frame, creating the cel when requested.

ParametersJSON Schema
NameRequiredDescriptionDefault
pixelsYes
filenameYes
layer_nameYes
frame_indexYes
create_if_missingNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses one side effect (creating the cel when requested), but does not state whether existing pixels are overwritten, how coordinates are interpreted, or what happens when create_if_missing is false. For a mutating draw tool this is a significant 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?

One compact sentence that front-loads the verb and target resource. No wasted words, and the optional cel-creation behavior is placed at the end.

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 no annotations and no output schema, this is too thin: no coordinate system, no overwrite semantics, no error/return behavior, and no hint of what the function produces. The available context comes almost entirely from the schema and sibling names.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to explain all five parameters. It only gestures at layer_name/frame_index with 'named layer and animation frame' and at create_if_missing with 'when requested'; filename and the required x/y/color structure of pixels are left to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: drawing explicit pixel data onto a named layer and animation frame, with a cel-creation side effect. This is clear enough to distinguish from shape-drawing tools, though it never explicitly contrasts with the similar draw_pixels sibling.

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 tool over alternatives such as draw_pixels or the other _at drawing variants. 'Explicit pixels' hints at pixel-level editing, but the description does not state use cases, exclusions, or prerequisites.

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

draw_polygonC

Draw a filled or outlined polygon on a named layer and animation frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
fillNo
colorNo#000000
pointsYes
filenameYes
layer_nameYes
frame_indexYes
create_if_missingNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It mentions filled/outlined options but does not state whether drawing overwrites existing pixels, how the layer/frame is affected, whether it creates the layer if missing (implied by create_if_missing but not described), or any error handling. The mutation behavior is under-specified.

Agents need to know what a tool does to the world before 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 concise sentence with no redundant words. It efficiently states the core purpose without fluff.

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

Completeness1/5

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

For a tool with 7 parameters, no output schema, and no annotations, the description is severely under-specified. It lacks essential information about required parameters, coordinate system, return value, and side effects. An agent would struggle to call this tool correctly without deep schema inspection.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate for parameter explanations. It only hints at fill and color via 'filled or outlined', but does not explain points (must be an array of coordinates), filename, layer_name, frame_index, create_if_missing, or color format. The description adds minimal value 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 clearly states the action ('Draw'), the resource ('polygon'), and the target ('named layer and animation frame'). It distinguishes itself from siblings like draw_line, draw_rectangle, and draw_circle by explicitly mentioning polygon, which 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 Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention draw_path, draw_rectangle, or other shape tools, nor does it specify conditions like requiring at least 3 points or handling of layers. The only usage hint is implicit from the word 'polygon'.

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

draw_rectangleC

Draw a filled or outlined pixel-art rectangle on the active Aseprite layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
fillNo
colorYes
widthYes
heightYes
filenameYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It reveals the filled/outlined modes and the active-layer target, but does not disclose side effects such as replacing pixels, coordinate clamping, color interpretation, or whether the operation modifies the active cel only.

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 single sentence is front-loaded and free of filler, but it is under-specified for a 7-parameter drawing tool. It reads as a useful opening summary, not as a complete description.

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?

Given the absence of annotations, an output schema, and parameter descriptions, this one-liner leaves substantial gaps: coordinate semantics, bounds/overflow behavior, color format, filename targeting, and active-layer interaction. An agent would have to infer or experiment to call it correctly.

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

Parameters2/5

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

With schema description coverage at 0%, the description must explain the 7 parameters, but it only implicitly covers 'fill' via 'filled or outlined'. x, y, width, height, color, and filename receive no added meaning beyond their schema names/types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 and object ('Draw a filled or outlined pixel-art rectangle') and a location ('on the active Aseprite layer'), making the core purpose clear. It does not explicitly distinguish this tool from sibling draw_rectangle_at or fill_area, so it stops 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 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 tool over siblings like draw_rectangle_at, draw_line, or fill_area, and no mention of prerequisites or exclusions. The only implied usage is 'when you want a rectangle,' which is not enough.

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

draw_rectangle_atB

Draw a filled or outlined rectangle on a named layer and animation frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
fillNo
colorNo#000000
widthYes
heightYes
filenameYes
layer_nameYes
frame_indexYes
create_if_missingNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It does not disclose whether the drawing overwrites existing pixels, how coordinates are interpreted, whether the operation modifies the file in place, or the effect of create_if_missing. Merely saying 'Draw' leaves key side effects and conventions unstated.

Agents need to know what a tool does to the world before 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 one tight sentence with no fluff. It front-loads the core action and the key differentiator ('named layer and animation frame') efficiently.

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?

Given 10 parameters, no annotations, no output schema, and many drawing-related sibling tools, this single-sentence description is under-specified. It omits critical details such as coordinate-system origin, required filename/layer/frame semantics, color defaults, and behavior when layers or frames are missing.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for understanding the 10 parameters. It clarifies the meaning of fill ('filled or outlined') and layer/frame targeting, but omits semantics for x, y, width, height, color, filename, and create_if_missing.

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 ('Draw'), a concrete resource ('a filled or outlined rectangle'), and a precise scope ('on a named layer and animation frame'). This distinguishes it from similar drawing siblings like draw_rectangle, draw_pixels_at, and draw_line_at.

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 naming of 'a named layer and animation frame' implies this tool is for drawing when a specific layer/frame must be targeted, rather than the current one. However, it never explicitly states when to prefer this over draw_rectangle or other drawing tools, nor does it define any exclusions.

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

draw_textB

Rasterize and draw text into a sprite layer and frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
boldNo
fontYes
sizeNo
textYes
colorNo#FFFFFF
anchorNotopleft
filenameYes
antialiasNo
shadow_dxNo
shadow_dyNo
layer_nameNo
frame_indexNo
shadow_colorNo
outline_colorNo
outline_widthNo
letter_spacingNo
outline_diagonalNo
create_if_missingNo

TDQS

B3.1/5.0
Behavior3/5

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

The description says 'Rasterize and draw text into a sprite layer and frame,' which implies a mutating operation, but does not disclose whether the sprite is permanently modified, whether previous text at that location is overwritten, what happens if the layer doesn't exist, or that create_if_missing defaults to true. With no annotations provided, the description carries the full burden but still communicates the core action, avoiding outright misleading 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 concise sentence with no filler, front-loading the core verb 'Rasterize and draw.' It is efficient, but it is so short that it sacrifices valuable explanatory content about the many parameters and behaviors, so it earns a 4 rather than a 5.

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 tool with 20 parameters, 5 required, no output schema, and no annotations. The single-sentence description does not explain return values, side effects, error conditions, or how parameters like anchor, shadow, outline, and create_if_missing interact. Without annotations or an output schema, the description must carry more weight, and it clearly falls short 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 0%, so the description must compensate for the 20 parameters, but it adds no parameter-level meaning whatsoever. It does not explain text positioning, anchor semantics, color formats, shadow/outline behavior, font usage, or frame indexing. The schema itself provides types, defaults, and enums, so the description adds no value beyond what structured data 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 and resource: 'Rasterize and draw text into a sprite layer and frame.' This clearly identifies the operation and target, distinguishing it from sibling draw tools like draw_line and draw_rectangle. However, it does not explicitly differentiate from related text tools like measure_text or list_text_fonts, so it earns a 4 rather than 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 use this tool versus alternatives such as draw_pixels_at, draw_rectangle_at, or measure_text. It does not mention prerequisites (e.g., sprite must exist, layer must exist, font must be available) or related tools like list_text_fonts for finding available fonts or measure_text for sizing text. The agent is left to infer usage from parameter names alone.

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

duplicate_frame_rangeC

Append one or more copies of an inclusive animation frame range.

ParametersJSON Schema
NameRequiredDescriptionDefault
timesNo
filenameYes
end_frameYes
start_frameYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavior on its own. It conveys that the tool mutates by appending copies and that the selected frame range is inclusive, but it omits side effects, ordering guarantees, target-file requirements, and any response/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.

Conciseness4/5

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

One front-loaded sentence with no filler; the verb carries the core meaning. It is efficient but slightly too thin to earn a 5 for a no-annotation 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?

With no annotations, no output schema, and no parameter documentation, the definition supplies very little context. An agent can infer the basic operation from the name and schema, but it lacks guidance on when to use it, how copies are ordered, and what a successful call returns.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain the four parameters. 'Inclusive... range' clarifies start_frame/end_frame and 'one or more copies' loosely maps to times, but filename is never mentioned and no format or ordinal semantics are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Append'), a specific resource ('inclusive animation frame range'), and the operation's effect ('one or more copies'). This distinguishes it from single-frame operations like copy_frame or destructive delete_frame, although it doesn't explicitly name a sibling.

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 sentence addresses when to use this tool instead of copy_frame, copy_cel, propagate_frame_to_range, or add_frames. The only context is the word 'Append,' which implies end-of-animation placement but provides no conditions or exclusions.

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

duplicate_layerC

Duplicate a layer and its cels across all frames.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNo
filenameYes
new_nameNo
layer_nameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but only states the core duplication behavior. It does not explain how new_name or group affect the duplicate, where the new layer is inserted, whether hidden/empty cels are included, or what errors or side effects may occur.

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, easily scannable sentence with no filler words. It is concise, though it achieves this by omitting important behavioral and parameter 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?

Given no annotations, no output schema, and four undocumented parameters, a one-sentence description is not sufficient for an agent to call this tool correctly with confidence. Missing parameter semantics and side-effect details are material gaps.

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

Parameters1/5

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

Schema description coverage is 0%, and the description mentions no parameters. The four parameters are left entirely to inference from their names and defaults, with new_name defaulting to '' being especially vague. The description must compensate for the missing schema descriptions but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 concrete action ('Duplicate') on a specific resource ('a layer and its cels') and scopes it across all frames. This is clear and helps distinguish it from frame/cel-level tools like copy_frame and duplicate_frame_range, though it does not explicitly name an alternative.

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 duplicate_layer versus copy_cel, copy_frame, duplicate_frame_range, or copy_layers_between_sprites. The phrase 'across all frames' implies a whole-layer operation, but there are no explicit when-to-use conditions or exclusions.

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

ensure_layers_presentC

Ensure cels exist for named layers across a frame range.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
end_frameNo
layer_namesYes
start_frameNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden of behavioral disclosure, but it only says cels will 'exist' without explaining whether it creates, overwrites, or preserves cels. It also fails to mention idempotency, side effects on existing cel contents, or failure behavior when a layer is missing.

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 sentence with no filler or repetition, and the core operation is front-loaded. It is concise, though the brevity comes at the cost of behavioral and parameter detail.

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?

There is no output schema and no annotation coverage, yet the description omits return behavior, idempotency guarantees, and edge-case semantics like invalid layer names or frame ranges. An agent cannot reliably predict what this tool returns or how it behaves in non-happy paths.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only conceptually references 'named layers' and 'frame range' without naming or explaining filename, start_frame, or end_frame. It provides minimal orientation but not enough to understand parameter relationships or defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Ensure') with a clear resource ('cels') and scope ('for named layers across a frame range'), so an agent can infer the operation. It does not explicitly differentiate itself from sibling tools like create_cel, which weakens but does not destroy clarity.

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 prefer this tool over alternatives such as create_cel, add_layer, or propagate_cels. There is no mention of situations where existing cels must be preserved, overwritten, or skipped, so usage context is essentially absent.

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

erase_colorB

Erase opaque pixels matching a color within channel tolerance.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorYes
filenameYes
toleranceNo
layer_nameYes
frame_indexYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that only opaque pixels are affected and that matching is per-channel with tolerance, which is useful. However, it does not state the nature of the mutation (e.g., whether pixels become transparent), irreversibility, or scope (layer/frame), leaving significant behavioral ambiguity for a destructive operation.

Agents need to know what a tool does to the world before 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 short, front-loaded sentence with no filler. Every word earns its place; it is appropriately sized for the information it conveys.

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 mutation tool with no annotations, no output schema, and four required parameters, this description is too thin. It lacks usage context, side effects, and parameter details beyond color/tolerance. An agent would have to infer or experiment to understand the operation's full effect.

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

Parameters3/5

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

Schema description coverage is 0%, so the description is the only source of parameter meaning. It clarifies that 'tolerance' is applied per channel and that matching considers opacity, adding value beyond the raw schema. However, it does not explain the other parameters (filename, layer_name, frame_index) or the color format, leaving gaps for a tool with five 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?

The description states a specific verb ('erase'), resource ('opaque pixels matching a color'), and a defining qualifier ('within channel tolerance'). This clearly distinguishes it from geometric erasers like erase_region or clear_cel, making the tool's purpose immediately understandable.

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 is given about when to use this tool versus alternatives such as erase_region, clear_cel, or replace_color. The description implies usage through its purpose but provides no explicit context, exclusions, or prerequisites.

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

erase_regionC

Erase a rectangular region to transparency.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
widthYes
heightYes
filenameYes
layer_nameYes
frame_indexYes

TDQS

C2.6/5.0
Behavior2/5

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

There are no annotations provided, so the description carries the full burden of behavioral disclosure. It states that the operation erases to transparency, which implies a destructive modification of the layer's pixel data, but it does not specify whether the erasure is permanent, whether it affects only the selected frame and layer, whether it respects layer opacity or blend mode, or whether it can be undone. The 7 required parameters suggest a complex operation that could alter the sprite in non-obvious ways, and the description does not address these risks.

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, short sentence that is immediately front-loaded with the verb 'Erase', making it easy to scan. There is no wasted wording. However, it is arguably too brief for a tool with 7 parameters and no annotations, but as a concise statement it earns a 4 for efficiency.

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?

Given the tool's moderate complexity (7 params, all required, no output schema, no annotations), the description is incomplete. It does not explain the coordinate system, the effect on animation frames, whether the erasure is destructive to the sprite file, or any side effects on other layers. While sibling tools like move_region and copy_region may have similar descriptions, the description does not provide enough context for an agent to safely use this tool without making assumptions. The lack of any parameter descriptions and the absence of behavior details makes this a significant gap.

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

Parameters1/5

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

The input schema has 0% description coverage, meaning no parameter descriptions are provided. The description only mentions 'rectangular region', which vaguely maps to the x, y, width, height parameters but does not explain units, coordinate origin, or how it relates to the layer's coordinate space. It also does not clarify the role of filename, layer_name, and frame_index, which are critical for targeting the correct sprite, layer, and frame. With zero schema descriptions, the description fails to compensate for the complete lack of 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 clear action ('Erase') and a specific resource ('rectangular region'), and specifies the result ('to transparency'), which distinguishes it from sibling erase_color (color-based erasure) and delete_frame (frame deletion). However, it does not explicitly mention the target layer or frame, which are implied by the parameters but not 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 does not provide any guidance on when to use this tool versus alternatives like erase_color, delete_frame, or clear_cel. It does not mention prerequisites (e.g., that the target layer must exist), nor does it warn about any limitations. The agent is left to infer from the name and parameters.

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

execute_asset_recipeC

Execute a deterministic composed asset recipe through the shared visual services.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
stepsYes
formatNopng
asset_idYes
materialNoearth
directionNosouth_east
output_prefixYes
input_filenameYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals that execution is 'deterministic' and routed 'through the shared visual services', but it does not state whether files are written, whether the source asset is modified, what the return behavior is, or what side effects the recipe steps may have.

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 filler or redundancy. It is concise, but the brevity comes at the cost of substance, so it cannot receive a 5.

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

Completeness1/5

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

For an 8-parameter execution tool with no annotations, no output schema, and a large sibling list containing similar tools, one vague sentence is far from complete. The agent lacks enough context to know prerequisites, output behavior, or how this differs from `run_asset_recipe`.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning for any of the 8 parameters. It does not explain `steps`, `material`, `direction`, `seed`, or how `output_prefix` is used, leaving the agent to guess from raw enum names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Execute') and a specific resource ('composed asset recipe'), so an agent can tell this is about running an asset recipe. However, it does not differentiate this from the sibling `run_asset_recipe`, and 'shared visual services' is vague.

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 `run_asset_recipe` or `compose_asset_preset`. The word 'deterministic' implies a narrow use case, but no explicit conditions or exclusions are given.

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

export_animation_gifB

Convert a PNG, GIF, or animated image into a GIF while preserving frames.

ParametersJSON Schema
NameRequiredDescriptionDefault
input_filenameYes
output_filenameYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose a meaningful behavioral trait ('preserving frames'), indicating that multi-frame inputs are retained. However, it omits other critical behaviors: whether the input file is read without modification, what happens on output file conflicts, and the exact meaning of 'animated image' (e.g., APNG, WebP, GIF). The 'preserving frames' disclosure earns a 3, but the gaps prevent a higher 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?

A single, front-loaded sentence with no filler. The core action, input scope, and output format are presented first, and the crucial 'preserving frames' behavior is included. All content is relevant and efficiently ordered.

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 tool with no annotations, no output schema, and no parameter descriptions, the one-line description is insufficient. It doesn't clarify prerequisites (e.g., input file must exist), side effects (creating/overwriting a file), or how it differs from the many sibling export/convert tools. An agent would need to inspect other tools or experiment to use it correctly.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no parameter-level meaning. It never mentions that the parameters are file paths, what formats they should be, or how they map to the conversion. The bare parameter names in the schema are all an agent has, so the description fails to compensate.

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 ('convert'), the resource type ('PNG, GIF, or animated image'), and the output format ('GIF'), with the distinguishing detail 'preserving frames' that separates it from siblings like export_sprite or export_frame. An agent can clearly tell this tool produces a GIF from an existing image or animation.

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 is provided on when to choose this tool over alternatives such as export_spritesheet, export_frame, or convert_animation_to_pixel_art. The description gives the 'what' but not the 'when' or 'when-not', leaving the agent to infer usage from the name and context.

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

export_asset_packC

Export an atlas PNG and a compact JSON manifest in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
columnsNo
paddingNo
input_filenamesYes
output_filenameYes
manifest_filenameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says two outputs are produced in one call, but it says nothing about whether existing files are overwritten, how inputs are resolved, what the manifest contains, or what error behavior to expect. This is a minimal disclosure for a tool that creates files.

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 no filler or redundant restatement of the tool name. It front-loads the core action and output, though it is quite terse for a tool with five parameters.

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?

Given that there is no output schema, no annotations, and zero schema description coverage, this one-liner is not complete enough. It omits the meaning of columns and padding, the relationship between inputs and outputs, and any sense of the manifest format or naming behavior. An agent would still need to inspect the schema and guess at intended usage.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds almost no parameter-level meaning. It doesn't explain input_filenames, columns, padding, or even make clear that output_filename is the PNG path and manifest_filename is the JSON path. The phrase 'atlas PNG and a compact JSON manifest' hints at the outputs but doesn't map to the required 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 states a specific verb ('Export') and a concrete resource ('an atlas PNG and a compact JSON manifest'), which makes the tool's high-level function clear. However, it doesn't explicitly differentiate this from siblings like export_spritesheet or export_animation_gif, so the 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 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. It doesn't mention conditions, exclusions, or tradeoffs compared to the many related export and bundle-generation tools 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.

export_frameC

Export one animation frame as a PNG with nearest-neighbor integer scaling.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNo
filenameYes
frame_indexYes
output_filenameYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions nearest-neighbor integer scaling, which is useful, but doesn't disclose whether the operation is read-only or mutating, whether it writes to disk, what happens if the file exists, or any side effects. For an export tool, this is a significant 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?

The description is a single concise sentence that front-loads the core purpose. It's efficient and doesn't waste words, though it could add a bit more detail without becoming bloated.

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?

Given the tool has 4 parameters, no output schema, and no annotations, the description is too sparse. An agent needs to know what 'filename' refers to (input sprite?), what 'frame_index' means (0-based or 1-based?), and what 'output_filename' should be. The description doesn't explain the relationship between these parameters or the expected output format beyond 'PNG'.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. The description mentions 'nearest-neighbor integer scaling' which relates to the 'scale' parameter, but doesn't explain the meaning of 'filename', 'frame_index', or 'output_filename' beyond what their names imply. It doesn't clarify the relationship between input and output filenames or the frame indexing convention.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 one animation frame as a PNG with nearest-neighbor integer scaling.' This clearly identifies the tool's function and distinguishes it from sibling export tools like export_animation_gif or export_spritesheet, though it doesn't explicitly 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 usage context (exporting a single frame as PNG with integer scaling) but provides no explicit guidance on when to choose this over alternatives like export_animation_gif or export_spritesheet. The sibling list contains many export-related tools, and the description doesn't differentiate them.

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

export_layersC

Export each layer as a PNG and confirm that at least one new layer file was written.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
include_hiddenNo
output_directoryYes

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that PNG files are written and that confirmation requires at least one new layer file to be written. However, it omits details such as overwrite behavior, file naming, handling of hidden layers, or what happens when no layers are exportable.

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, front-loading the core action and then the confirmation behavior. Slightly more detail could be added without harming 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?

For a filesystem-writing tool with three parameters and no annotations or output schema, this is too sparse. It leaves parameter semantics, return shape, and failure behavior unspecified.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no meaning for filename, output_directory, or include_hidden. There is no compensation for the missing 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?

States a specific action and resource: 'Export each layer as a PNG' and adds an explicit verification outcome. The layer-level granularity differentiates it from siblings like export_spritesheet or export_frame, though it doesn't 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 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 many sibling export tools. It does not state exclusions or alternatives.

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

export_spriteC

Export a sprite to a selected image format and confirm that Aseprite wrote an output file.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNopng
filenameYes
output_filenameYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does add some transparency by noting that the tool confirms Aseprite wrote the output file. However, it does not disclose side effects such as overwriting existing files, required permissions, directory creation, or error behavior when the output is not written.

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 concise sentence that front-loads the core operation. It avoids irrelevant detail, though the phrase 'confirm that Aseprite wrote an output file' could be slightly tighter 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 tool with a side effect, no annotations, and no output schema, the description is too thin. It does not explain the return value, failure modes, overwrite behavior, or file path semantics, leaving gaps that an agent would need to guess at.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It hints at 'sprite' (filename), 'output file' (output_filename), and 'image format' (format), but it never maps these concepts to the actual parameter names or explains their expected values 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 clear, specific action: export a sprite to an image format and verify Aseprite wrote an output file. It references the resource 'sprite' and the 'selected image format', but it does not explicitly differentiate itself from sibling export tools like export_frame, export_layers, export_tag, or export_spritesheet.

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 tool over sibling export tools. Since many siblings perform related exports, the description leaves the decision to the agent's inference rather than stating explicit use conditions or alternatives.

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

export_spritesheetC

Export a spritesheet and optional frame metadata for Godot.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNo
paddingNo
filenameYes
tag_nameNo
list_tagsNo
sheet_typeNohorizontal
data_formatNojson-array
data_filenameNo
output_filenameYes

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'optional frame metadata' but does not explain what that entails (e.g., file formats, side effects like writing files, or whether it modifies the sprite). It also does not state any required state (e.g., frames must exist). This is a significant gap for a tool that produces an output.

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

Conciseness2/5

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

The description is a single sentence, which is brief, but it is under-specified rather than appropriately concise. It does not front-load essential usage constraints or parameter explanations. Every word is spent on stating the obvious purpose, leaving no room for the information an agent needs. It is not concise in a way that adds value.

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

Completeness1/5

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

Given the tool's complexity (9 parameters, no annotations, no output schema), the description is grossly incomplete. It does not explain what the output looks like, how the parameters interact, what 'optional frame metadata' means, or any side effects. An agent cannot reliably call this tool correctly based on the description alone.

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

Parameters1/5

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

Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds zero information about any of the 9 parameters, including critical ones like filename, output_filename, sheet_type, data_format, scale, padding, tag_name, list_tags, and data_filename. The agent is left with only the schema's structural hints, which are insufficient for correct 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?

The description states a specific action ('Export a spritesheet') and a target ('for Godot'), clearly indicating the tool's primary purpose. It does not explicitly differentiate from siblings like export_frame or build_animation_sheet, but the resource (spritesheet) is distinct enough. It is not a tautology and conveys the core function.

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 is given on when to use this tool versus alternatives. It does not mention prerequisites, such as having an active sprite with frames, nor does it explain when to choose export_spritesheet over export_frame, export_tag, or build_animation_sheet. The agent must infer usage from the name and context.

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

export_tagC

Export an animation tag as an image or animation file after validating that the tag exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNo
filenameYes
tag_nameYes
output_filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses one trait — validating that the tag exists — but omits other important behaviors: it creates a file on disk, whether existing files are overwritten, how output format is determined, and what error occurs when the tag is missing.

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 action front-loaded and no wasted words. The purpose, output type, and a behavioral note are all packed cleanly, though slightly more detail would be justified given the uncovered parameters.

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 4-parameter tool with no annotations, no output schema, and zero schema description coverage, this description is incomplete. Two of four parameters (filename, scale) are undocumented everywhere, and no usage alternatives are mentioned. An agent would need to guess at source semantics and scaling behavior before calling it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It implicitly maps 'tag' to tag_name and 'image or animation file' to output_filename, but leaves filename (likely the source asset) and scale (output scaling factor) completely unexplained. The compensation is partial at best.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Export'), a clear resource ('an animation tag'), and the output type ('image or animation file'). It also mentions a validation step that adds precision. However, it doesn't explicitly distinguish itself from the closely related sibling export_animation_gif, which also exports animation output.

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 is given on when to use this tool versus alternatives like export_animation_gif, export_spritesheet, export_frame, or export_layers. The word 'tag' implies the selection unit, but there are no explicit conditions, exclusions, or alternative tool mentions.

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

extend_sceneB

Extend an existing deterministic scene around its borders while preserving the original layers and landmarks.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
leftNo
seedNo
rightNo
bottomNo
preview_filenameNo
input_map_filenameYes
output_map_filenameYes

TDQS

B3.2/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the behavioral burden. It does add meaningful traits: the operation is deterministic and preserves original layers/landmarks. However, it does not disclose side effects, whether the input file is mutated or only read, how the seed affects generation, or failure modes. The schema hints at file inputs/outputs, but the description itself leaves those behaviors 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?

The description is a single, efficiently structured sentence with no wasted words. It front-loads the core operation and adds a relevant preservation clause. It is appropriately sized for the tool, though brevity unavoidably sacrifices some parameter-level clarity.

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 tool with eight parameters, no annotations, and no output schema, this description is too thin. It does not explain how to specify extension amounts, what seed does, whether preview_filename is required, what the output file contains, or what happens if the input is not a deterministic scene. An agent could call the tool but would struggle to choose correct parameter values confidently.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for eight parameters. 'Around its borders' loosely explains top/left/right/bottom, and 'deterministic scene' hints at seed, but units, semantics of the integer border values, the meaning of preview_filename, and the relationship between input and output filenames are not explained. The descriptive burden is not met for a low-coverage 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 clearly states a specific verb ('Extend'), a resource ('existing deterministic scene'), and a precise scope ('around its borders'). It also communicates key non-destructive traits ('preserving the original layers and landmarks'), which differentiates it from generation, composition, or effect-stack siblings.

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 phrase 'existing deterministic scene' implies a precondition and suggests this is not for creating new scenes from scratch, but there is no explicit when-to-use guidance and no mention of alternatives such as generate_world_map or compose_asset_scene. The tool is left to infer routing 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.

extract_paletteC

Extract and persist an optimized palette with a bounded color count.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
max_colorsNo
with_alphaNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits itself. It does reveal that the operation 'persists' datahol a side effect and that the palette count is bounded, but it omits important behavioral context such as whether existing palettes are overwritten, what the output format is, how with_alpha affects persistence, or any destructive implications.

Agents need to know what a tool does to the world before 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 or repetition. It efficiently communicates the core action and constraint, making it appropriately concise for the information it provides.

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?

Given the lack of annotations and output schema, the description is not complete enough for an agent to confidently invoke the tool. It does not explain return behavior, side effects in enough detail, or how to choose this tool among many palette-related siblings, leaving significant gaps for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only loosely alludes to max_colors via 'bounded color count.' It does not explain the filename parameter's role, the meaning of max_colors beyond the bound, or the behavior of with_alpha, leaving most parameter semantics to the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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—'extract and persist' a palette—and ties it to 'optimized' output with a 'bounded color count,' which clearly identifies the tool's core function. It does not explicitly name or contrast sibling palette tools, so it falls short of the highest bar for differentiation.

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 like get_palette, set_palette, quantize_to_palette, or harmonize_asset_palette. Any sense of intended usage is only weakly implied by 'extract and persist,' with no exclusions or context.

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

fill_areaC

Fill a contiguous area from a seed pixel.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
colorNo#000000
filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It conveys the essential flood-fill behavior but omits important traits for a mutation tool: destructive overwrite, how boundary/color matching is determined, coordinate conventions, filename requirements, and expected result or errors.

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 short sentence with no filler and front-loads the core operation. Its brevity is not a structural flaw, though it contributes to incompleteness 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?

Given four parameters, no annotations, no output schema, and 0% schema coverage, this description is too thin. An agent cannot determine coordinate semantics, color behavior, or what happens after the operation, and the fill_area/fill_area_at distinction remains unresolved.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only hints that x/y are related to a seed pixel. It does not explain filename, clarify what color does, or surface the default fill color, leaving an agent under-informed about three of the four 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 states a specific action ('fill') and target ('contiguous area') anchored by a seed pixel, which makes the core purpose clear. However, it does not distinguish fill_area from the sibling fill_area_at, so an agent cannot tell from the description which variant applies to which coordinate space.

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 about when to use fill_area versus alternatives such as fill_area_at, draw_pixels, or erase_color. No prerequisites, exclusions, or routing conditions are provided, leaving the choice to inference.

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

fill_area_atC

Fill a contiguous area on a named layer and animation frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
colorNo#000000
filenameYes
layer_nameYes
frame_indexYes
create_if_missingNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It only states 'fill a contiguous area' without explaining that it modifies pixels, how contiguity is determined, whether it respects color tolerance, or that it can create layers via the create_if_missing parameter. Side effects are completely undisclosed.

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 concise sentence with no redundancy, and it front-loads the action. However, it is under-specified rather than appropriately concise, as it omits critical details that should be included.

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

Completeness1/5

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

For a tool with seven parameters, five required, and no annotations or output schema, the description is severely inadequate. An agent would not know what the parameters mean, how the fill operation behaves, or what side effects to expect, making it impossible to call correctly without external knowledge.

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

Parameters1/5

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

The description does not explain any of the seven parameters. With schema description coverage at 0%, the description must compensate by clarifying the meaning of x, y, color, create_if_missing, etc., but it offers no parameter information at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the verb (fill), the target (contiguous area on a named layer and animation frame), and implies a specific starting point via the '_at' suffix and required x/y params. It distinguishes from siblings like fill_area and draw_rectangle, though it doesn't explicitly mention the coordinate-based nature.

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 fill_area or draw_rectangle. The description provides no context for selecting it over other drawing tools, and no exclusions or preconditions are mentioned.

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

flatten_spriteB

Flatten all layers into one layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It states the basic effect but does not disclose that flattening is destructive/irreversible, how layer properties are handled, or whether it applies per frame. This is a significant gap for a mutating operation.

Agents need to know what a tool does to the world before 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 and the core behavior is front-loaded. It is appropriately concise for a one-parameter 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?

Minimally viable for a simple operation: the core action is stated, but the filename parameter semantics and the destructive nature of flattening are left unexplained. With no annotations and no output schema, more context would be expected.

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

Parameters2/5

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

Schema coverage is 0% and the description never mentions the filename parameter, so the agent must infer its meaning from the parameter name alone. The description adds no information about what format, path, or identifier the filename expects.

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 the action (flatten), the object (all layers), and the result (one layer), which is specific and clearly distinguishes it from siblings like merge_layer_down or delete_layer. The resource and outcome are unambiguous.

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 flatten_sprite versus alternatives such as merge_layer_down or set_layer, and no exclusions are mentioned. The only usage hint is implicit in the verb 'flatten', not explicit.

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

flip_layerC

Flip a layer cel horizontally or vertically.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
directionNohorizontal
layer_nameYes
frame_indexYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It does not state whether the operation is destructive (replaces original cel), reversible, or affects only the specified frame. It also doesn't indicate if any additional side effects occur (e.g., updating composite). For a mutation tool with zero annotation coverage, this is a significant 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?

The description is a single, succinct sentence that front-loads the action. It is appropriately sized for a simple operation and contains no filler. However, the conciseness sacrifices necessary detail, so it is not perfect.

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?

Given the lack of annotations, output schema, and parameter descriptions, the tool description is incomplete. An agent would not know how to correctly construct arguments or what to expect after execution. The description covers only the core action but omits essential context like parameter identification and side effects, making it inadequate for a 4-parameter tool.

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

Parameters2/5

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

The schema has 0% description coverage, and the description fails to compensate. It only mentions the 'direction' parameter implicitly via 'horizontally or vertically', but it does not explain the roles of filename, layer_name, and frame_index, which identify the sprite, layer, and frame. Since the schema itself provides no descriptions, the tool description must fill this gap, and it doesn't.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: flipping a layer cel horizontally or vertically. It clearly identifies the resource (layer cel) and the operation (flip). It distinguishes from siblings like rotate_layer (rotation) and set_cel_position (positioning) by implying mirroring. However, it doesn't explicitly contrast with other mirroring tools (none exist), so it's clear but not exhaustive.

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 is provided on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., does the sprite need to be loaded? Does the layer need to exist?) or scenarios where flipping is appropriate. It is a bare statement with no context for selection.

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

generate_asset_presetC

Generate one executable world preset with terrain, map, preview, and deterministic time-of-day artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYes
widthYes
heightYes
preset_idYes
tile_sizeNo
detail_levelNohigh
output_prefixYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses that the output is 'executable' and that time-of-day artifacts are deterministic, which adds some behavioral context. However, it does not mention side effects (e.g., file writes, overwrites), permissions, reversibility, or return behavior. For a generation tool with zero annotation coverage, this is insufficient transparency.

Agents need to know what a tool does to the world before 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, focused sentence with no filler words. It front-loads the verb and result, and every phrase ('executable world preset', 'terrain, map, preview, deterministic time-of-day artifacts') adds meaning. No redundant information or promotional language is present.

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 7 parameters, no output schema, no annotations, and zero schema descriptions. The description lists the artifact types but omits parameter semantics, return format, prerequisites, and any guidance on how the output is delivered (e.g., files, paths). It is too sparse for correct invocation, especially given the complexity of a world preset generator.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the input schema properties have no descriptions, and the tool description must compensate. It does not. The description mentions terrain, map, preview, and time-of-day, but gives no explanation of how parameters like preset_id, output_prefix, width, height, seed, tile_size, or detail_level affect the output. An agent cannot determine the meaning of any parameter from the description alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Generate') and resource ('executable world preset'), and enumerates the artifacts produced (terrain, map, preview, deterministic time-of-day). It does not explicitly name sibling tools, but the scope is distinct enough that an agent can infer what it does. Slight deduction because it does not differentiate from compose_asset_preset or generate_world_map, which are plausible 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 description implies usage when a complete world preset with multiple artifacts is needed, but it provides no explicit when-to-use or when-not-to-use guidance, nor does it mention any sibling alternatives. The context signals show many related tools (generate_world_map, compose_asset_preset, generate_day_night_cycle), so the lack of explicit routing is a clear gap. This is adequate but not more than implied usage.

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

generate_beach_sceneC

Generate a seeded beach map, preview, and animated wave GIF.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYes
widthYes
heightYes
wave_framesNo
detail_levelNohigh
map_filenameYes
wave_delay_msNo
wave_filenameYes
landmark_countNo
preview_filenameNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, but it only states that outputs will be produced. It does not disclose whether files are written to the supplied filenames, whether existing files are overwritten, what 'preview' means, or what side effects the generation has. The word 'seeded' hints at determinism but provides little else.

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 single sentence is tight, front-loaded, and free of filler. It is somewhat under-specified, but the structure itself is efficient and easy to scan.

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 tool with 10 parameters, no output schema, and no annotations, a one-line summary is insufficient for an agent to call it correctly. Missing context includes parameter semantics, file-output behavior, and when to prefer this over the many generate_* siblings.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it mentions none of the 10 parameters explicitly except by loose inference. 'Seeded' hints at the seed parameter, and the deliverables map to the filename parameters, but width, height, detail_level, wave_frames, landmark_count, and wave_delay_ms are left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Generate') and names concrete deliverables: a seeded beach map, a preview, and an animated wave GIF. This is clear enough to distinguish the tool from generic world-map generators, though it does not explicitly contrast it with sibling tools such as generate_world_map or generate_environment_pack.

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 about when to use this tool versus alternatives like generate_world_map, generate_water_reflection, or generate_environment_pack. The intended context, prerequisites, and exclusions are left entirely to inference.

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

generate_biome_transitionA

Generate deterministic transition metadata and a preview overlay between adjacent map biomes without mutating the source map.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
preview_filenameNo
transition_widthNo
input_map_filenameYes
output_map_filenameYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral disclosure burden and does it well: 'deterministic' signals repeatability, and 'without mutating the source map' guarantees non-destructive behavior. The mention of 'metadata and a preview overlay' also clarifies the output artifacts, though file-creation or overwrite behavior 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?

The description is a single, front-loaded sentence with no filler. Every phrase earns its place, and the key safety constraint ('without mutating the source map') is included without bloating the text.

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 5-parameter tool with no annotations and no output schema, the description is adequate but incomplete: it conveys purpose and a critical constraint, but leaves transition_width semantics, seed behavior, filename roles, and any return/result contract unexplained. The schema names and defaults fill part of the gap.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for missing parameter docs, but it does not explain seed, transition_width, preview_filename, or the two required filename parameters. Only 'between adjacent map biomes' and 'preview overlay' hint at some parameter purposes; most semantics are left to the schema 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?

The description uses 'Generate' as a specific verb, names the resource ('transition metadata and a preview overlay'), and constrains scope to 'between adjacent map biomes' and 'without mutating the source map.' This clearly distinguishes it from broader tools like generate_world_map or build_terrain_tileset.

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 niche use case—biome transitions requiring non-mutating generation—but never explicitly states when to prefer this tool over alternatives or when not to use it. No sibling tool is referenced, so routing depends on inference rather than explicit guidance.

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

generate_color_rampC

Generate a hue-shifted dark-to-light pixel-art color ramp.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNo
base_colorYes
lightness_rangeNo
hue_shift_degreesNo

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It implies the tool shifts hue and creates a dark-to-light ramp, but does not specify whether it returns an array, modifies a canvas, or has side effects. It also omits constraints like step limits or how parameters interact, leaving significant behavioral ambiguity.

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

Conciseness3/5

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

The description is a single sentence with no fluff, so it is concise. However, it is under-specified to the point of being minimally useful. While front-loading is fine, the lack of substance reduces its effectiveness.

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

Completeness1/5

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

For a tool with four parameters, no annotations, and no output schema, this description is severely incomplete. It does not explain return values, parameter semantics, or invocation context. An agent would be guessing about how to use this tool correctly, especially with zero schema coverage in the description.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameters. It only hints at 'hue-shifted' and 'dark-to-light', which loosely map to hue_shift_degrees and lightness_range, but it does not explicitly describe base_color, steps, or the meaning of numeric ranges. An agent cannot infer the correct usage from this text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action ('Generate') and a specific resource ('pixel-art color ramp'), with qualifiers 'hue-shifted' and 'dark-to-light' that give a precise sense of the output. However, it does not explicitly distinguish itself from sibling tools like harmonize_asset_palette or extract_palette, though none are directly equivalent.

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 is given about when to use this tool versus alternatives. It does not mention scenarios, prerequisites, or context that would help an agent decide between this and other palette/color tools. The description is purely declarative.

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

generate_day_night_cycleC

Generate a deterministic animated day, sunset, night, and sunrise cycle while preserving transparency and source dimensions.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
formatNo
framesNo
delay_msNo
intensityNo
input_filenameYes
output_filenameYes

TDQS

C2.7/5.0
Behavior3/5

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

Because annotations are absent, the description carries the full behavioral burden. It does disclose meaningful traits: deterministic output, an animated phase sequence, and preservation of transparency and source dimensions. However, it does not mention file side effects, whether the input is read-only or overwritten, or any input-image constraints, leaving the agent only partially informed.

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 one tight, front-loaded sentence with no filler. It is concise rather than over-specified, though it sacrifices some useful usage context for brevity.

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

Completeness1/5

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

A seven-parameter generation tool with no schema descriptions and no output schema needs far more context to be callable correctly. The description leaves parameter semantics, return behavior, and input expectations entirely unstated.

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

Parameters1/5

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

With 0% schema description coverage, the description was expected to clarify the seven parameters, but none of them are mentioned. seed, frames, delay_ms, intensity, and format all remain unexplained, and the agent cannot infer their meanings from the prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('generate'), a specific resource ('day, sunset, night, and sunrise cycle'), and adds meaningful constraints ('deterministic', 'preserving transparency and source dimensions'). It reads as a distinct operation among the many sibling generation tools, though it never names an alternative to disambiguate from similar effect generators.

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 is provided about when to use this tool over related siblings such as generate_rain_overlay, generate_water_reflection, or generate_scene_effect_stack. There are no conditions, prerequisites, or exclusions, so the agent must infer all usage context 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.

generate_environment_packC

Generate a complete beach, forest, village, or cave asset pack.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
seedYes
widthYes
heightYes
tile_sizeNo
detail_levelNohigh
output_prefixYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It only states that a 'complete' asset pack is generated, but does not disclose what the output looks like, whether side effects occur, how the seed affects results, or what 'complete' means in practice.

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 single sentence is lean and free of filler, earning its place as a basic summary. However, for a tool with seven parameters and no annotation support, this level of brevity crosses from conciseness into under-specification.

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?

Given the tool's complexity (7 parameters, no output schema, no annotations), the description is incomplete. It lacks information about return values, parameter behavior and constraints, and how this tool relates to the many sibling generation tools, leaving an agent under-informed for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate, but it only restates the 'kind' enum values already present in the schema. It adds no meaning for the required parameters output_prefix, width, height, seed, or the optional tile_size and detail_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?

The description names a specific verb ('Generate'), a resource ('asset pack'), and enumerates the supported environment kinds ('beach, forest, village, or cave'). This makes the tool's scope clear and helps distinguish it from non-environment generation tools, though it does not explicitly differentiate it from close siblings like generate_beach_scene or generate_terrain_tileset.

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 is provided on when to use this tool versus alternatives. With many sibling generation tools such as generate_asset_preset, generate_beach_scene, and export_asset_pack, the description gives no selection criteria, exclusions, or prerequisite context.

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

generate_library_variant_packB

Generate deterministic environmental variants for multiple asset library ids with one compact request.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
framesNo
delay_msNo
item_idsYes
variantsYes
output_prefixYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are present, so the description alone must disclose behavior. It reveals one important trait, determinism, and that variants are environmental, but says nothing about side effects, whether files or artifacts are created, output destination/output_prefix behavior, or limits. For a generation-style tool this is a material 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?

One sentence with no filler; the main function and key traits (deterministic, multiple IDs, compact request) are front-loaded. It earns its place, though the brevity is bought at the cost of completeness scored elsewhere.

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 no output schema and no annotations, and with 0% schema description coverage, a single high-level sentence is insufficient for a 6-parameter tool. Missing return/output behavior, parameter meaning, and sibling-selection guidance leave an agent guessing before invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the text must compensate for six undocumented parameters. It only loosely maps 'multiple asset library ids' to item_ids and 'environmental variants' to variants; it does not explain seed, frames, delay_ms, output_prefix, or allowed variant values, so most parameters remain opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('generate') and resource ('environmental variants for multiple asset library ids'), and the phrase 'one compact request' signals a batching capability. It is clear enough to avoid obvious confusion with single-effect generators, but it does not explicitly name sibling distinctions such as generate_environment_pack or generate_source_variant_pack.

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 batching use case ('multiple asset library ids', 'one compact request'), but it never states when to prefer this tool over single-variant generators or generate_environment_pack, nor what conditions make it inappropriate. No exclusions or alternative routing are given, so the agent must infer usage.

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

generate_motion_packB

Generate a deterministic idle, walk, run, jump, or attack cycle from a static or animated sprite.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
formatNo
framesNo
motionYes
delay_msNo
amplitudeNo
input_filenameYes
output_filenameYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose that the generation is 'deterministic', which is a meaningful trait, and it clarifies input compatibility (static or animated sprite). However, it omits other important behaviors such as whether it modifies the input, output format details, or any limitations on sprite size or complexity. The determinism mention adds some value beyond the schema but coverage is minimal.

Agents need to know what a tool does to the world before 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, compact sentence that front-loads the primary purpose. There is no fluff, filler, or redundant phrasing. Every word contributes to the core message. It is an excellent example of concise, well-structured documentation.

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 tool with 8 parameters, a specific motion-generation task, and no output schema, the description is severely incomplete. It does not describe the output file structure, how determinism is controlled (e.g., seed usage), any prerequisites (e.g., sprite orientation, pivot points), or typical use cases. An agent would struggle to know what to expect or how to configure parameters effectively.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the description does not mention any of the 8 parameters. It fails to explain what 'seed', 'amplitude', 'delay_ms', etc. do, forcing the agent to rely solely on the schema's defaults and enums. Since coverage is zero, the description should compensate by clarifying parameter roles, but it does so not at all. This is a significant gap.

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 ('Generate'), a clear resource ('from a static or animated sprite'), and the output type ('idle, walk, run, jump, or attack cycle'). It distinguishes itself from sibling tools like generate_sprite_hitboxes or generate_normal_map by naming the exact motion cycle types. This is a precise, unambiguous statement of what the tool does.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives. It doesn't mention scenarios where this tool is appropriate or inappropriate, nor does it reference sibling tools or workflow steps. The agent would have to infer usage from the name and the generic description, which is insufficient given the wide range of animation-related tools.

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

generate_normal_mapC

Generate a deterministic tangent-space normal map from sprite alpha depth.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
strengthNo
input_filenameYes
output_filenameYes

TDQS

C2/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden. It says 'Generate', implying a non-destructive operation, but there is no mention of side effects, whether it overwrites files, or any computational side effects. The 'deterministic' trait is mentioned, but the behavioral implications of determinism (e.g., same input always same output) are not elaborated. This is minimal disclosure.

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

Conciseness4/5

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

The description is a single sentence, extremely concise and front-loaded with the core purpose. It wastes no words, though it may be too brief given the lack of other details. It earns a high score for conciseness but not for content.

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

Completeness1/5

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

Given no annotations, no output schema, and 0% schema coverage, the description is severely incomplete. An agent needs to know what the output is (normal map format), how parameters like 'strength' affect the result, and any prerequisites (e.g., sprite must have alpha). The tool is likely used for asset generation, but the description doesn't connect it to any workflow.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain the parameters. It mentions 'alpha depth' as the source, which relates to 'input_filename', but doesn't explain 'output_filename', 'format', or 'strength'. For example, 'strength' is not defined as a multiplier or exponent. The description adds almost no meaning beyond the schema's basic names and constraints.

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 states a specific verb and resource ('Generate a deterministic tangent-space normal map from sprite alpha depth'), which is clear. However, it doesn't distinguish itself from sibling tools like 'generate_sprite_shadow' or 'apply_material_texture', which could also involve depth or normals. It does imply the use of alpha depth as input, but the uniqueness is not explicit.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any conditions, prerequisites, or exclusions. Given the large sibling list with similar generation tools, this is a significant gap.

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

generate_particle_burstB

Generate a deterministic animated particle burst GIF for impact, healing, magic, or dust.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYes
colorYes
widthYes
framesYes
heightYes
delay_msNo
particle_countYes
output_filenameYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations present, the description must carry the behavioral disclosure burden. It does reveal that the output is deterministic and GIF-formatted, but it does not clarify side effects such as file creation, overwriting behavior, output location, or whether the burst is generated against the current canvas/sprite 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?

The description is a single focused sentence with no redundant phrasing. It front-loads the most important facts, though it is concise at the cost of omitting useful behavioral and parameter 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 tool has 8 parameters, 7 required, no annotations, no output schema, and 0% schema-description coverage. A one-sentence purpose statement is not enough to correctly invoke a particle-burst generator; the agent is left guessing about output format specifics, parameter effects, and side effects.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needs to compensate by explaining how parameters like seed, color, frames, and particle_count interact. It adds no parameter-level meaning beyond what the parameter names already imply, leaving key semantics such as deterministic seeding unexplained.

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: 'generate a deterministic animated particle burst GIF'. It also gives concrete usage categories (impact, healing, magic, dust) and the 'deterministic' qualifier distinguishes it from generic animation or GIF-generation 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 phrase 'for impact, healing, magic, or dust' gives an implied use case, so an agent knows this is for particle-burst-style visual effects. However, it does not explicitly state when to prefer this over alternatives such as generate_motion_pack or export_animation_gif, nor does it give any when-not conditions.

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

generate_rain_overlayC

Generate a deterministic rain overlay while preserving the source dimensions and frame timing.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYes
windNo
colorYes
formatNo
framesNo
delay_msNo
intensityNo
input_filenameYes
output_filenameYes

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does reveal two useful traits: the output is deterministic (seed-based) and source dimensions/frame timing are preserved. However, it does not describe side effects, output file creation behavior, or how wind/intensity affect the overlay, leaving significant behavioral gaps.

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 filler words. It efficiently states the core purpose and primary behavioral guarantees. However, it is arguably too terse for the tool's complexity, so it does not earn a 5, but it is structurally well-formed.

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

Completeness1/5

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

Given the nine parameters, no annotations, and no output schema, the description is seriously incomplete. It does not explain the meaning of any parameter, what the output looks like, how determinism works, or how dimensions/timing preservation is achieved. An agent cannot confidently invoke this tool correctly based on the current definition.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate. It mentions none of the parameters: seed, wind, color, format, frames, delay_ms, intensity, input_filename, or output_filename. The agent gets no additional meaning beyond parameter names and types, which is inadequate for a 9-parameter 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 clearly states the tool generates a deterministic rain overlay and specifies that it preserves source dimensions and frame timing. This is a specific verb-resource pair and gives concrete distinguishing traits (determinism, preservation), though it does not explicitly differentiate from sibling effect generators.

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 is given about when to use this tool versus related alternatives like generate_water_reflection or generate_water_caustics. The description implies a use case but offers no exclusions or contextual decision points, leaving the agent to infer applicability.

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

generate_scene_effect_stackC

Generate a deterministic compact package of selected scene effects while preserving the source: rain, particles, water motion, day/night, material grain, and directional lighting.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
formatNogif
framesNo
effectsYes
delay_msNo
materialNoearth
directionNosouth_east
output_prefixYes
input_filenameYes
particle_colorNo
particle_countNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions 'deterministic' and 'preserving the source', which are useful. However, it does not disclose what 'compact package' means (e.g., format, memory implications), whether effects are combined or applied sequentially, or any performance/processing expectations. For a complex tool with 11 parameters, this is insufficient.

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, concise sentence that front-loads the core purpose and lists relevant effects. It avoids redundant detail. However, it compresses too much behavioral information, and the list of effect types is somewhat long but still 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?

This is a complex tool with 11 parameters, no output schema, and no annotations. The description covers only the primary purpose and some effect types. It lacks information on parameter semantics, output format, or how effects are combined. Given the complexity and lack of structured data, the description is not sufficient for an agent to safely 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?

Schema description coverage is 0%, so the description must compensate for all parameters. It lists effect types in the description, which maps to the 'effects' parameter. But it provides no detail on optional parameters like 'seed', 'format', 'frames', 'material', 'direction', or 'particle_color'/'particle_count'. The minimal mention of 'deterministic' hints at 'seed', but leaves most parameters unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('generate') with a clear resource ('compact package of selected scene effects') and lists the effect types. It also mentions 'deterministic' and 'preserving the source', which clarifies intent. However, it doesn't explicitly differentiate from sibling effect-specific tools like generate_rain_overlay or generate_water_reflection, though the bundling aspect is implied.

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 the many effect-specific siblings (e.g., generate_rain_overlay, generate_water_reflection). It doesn't explain that this bundles multiple effects in one package, nor does it mention any exclusions or alternatives. The agent must infer its purpose solely from the name 'generate_scene_effect_stack'.

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

generate_seamless_textureC

Make opposite texture borders match deterministically for repeatable water, earth, stone, or grass backgrounds.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
seam_widthNo
input_filenameYes
output_filenameYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does reveal determinism ('deterministically') and repeatability, which are useful traits, but it says nothing about side effects, whether output overwrites files, input requirements, or resulting behavior of the generated texture. For a file-generating tool, this is a significant transparency 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?

The description is a single concise sentence with no filler, and the core behavior is front-loaded before the material examples. It is efficient, though it could have used some of its brevity to mention key parameter semantics without losing clarity.

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 description communicates the high-level intent but is not complete enough for an agent to invoke the tool correctly. It omits parameter semantics, output behavior, and operational details such as supported formats or seam width constraints, and there is no output schema or annotations to fill that gap. For a four-parameter generation tool, this leaves substantial room for agent confusion.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate for explaining the four parameters, but none are mentioned. The terms 'texture borders' and 'seamless' hint at the purpose of seam_width, but the actual semantics of format, seam_width, input_filename, and output_filename are left entirely to inference. The description adds no parameter-level value 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 clear verb and resource: making opposite texture borders match to produce repeatable backgrounds. It also signals specific material use cases (water, earth, stone, grass) and implies tileability, distinguishing it from texture-related siblings like generate_normal_map or apply_material_texture. It does not explicitly contrast itself with siblings, so it falls 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 Guidelines3/5

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

The phrase 'for repeatable water, earth, stone, or grass backgrounds' gives clear context for when the tool is appropriate. However, it does not mention when not to use it or name alternative tools for similar tasks, such as generate_water_caustics or build_terrain_tileset. This is implied usage rather than explicit routing.

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

generate_source_variant_packB

Generate a deterministic multi-output environmental variant pack for one source asset: rain, fire, earthquake, birds, night, movement, and water effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
framesNo
delay_msNo
variantsYes
output_prefixYes
input_filenameYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It adds useful context by stating the output is 'deterministic' and 'multi-output,' which goes beyond the schema. Still, it does not explain whether the source asset is modified, what output files are produced, how variants are named, or what the return value is.

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 compact sentence that front-loads the tool's purpose and output type, followed by an efficient list of effect categories. It avoids fluff and is easily scannable, though it could have been slightly more structured by separating the core definition from the example variant list.

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 six parameters, no annotations, no output schema, and zero schema parameter documentation, so a one-sentence description is insufficient for correct invocation. Missing operational details include the meaning of each parameter, how selected variants map to outputs, naming conventions, and expected return behavior. The variant list and determinism note are useful but leave too many gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for all six parameters. It loosely maps some variant categories to the variants enum, but it does not describe input_filename, output_prefix, seed, frames, or delay_ms. The variant list is partial and somewhat imprecise, leaving most parameter semantics undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 concrete action ('generate'), a specific resource ('one source asset'), and an output type ('deterministic multi-output environmental variant pack'), then enumerates the effect categories. It is clear and distinct from low-level generation tools, but it doesn't explicitly contrast itself with closely named siblings like generate_environment_pack or generate_library_variant_pack.

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 one source asset' and the idea of a multi-output pack give implied usage context: this is for producing several environmental variants in one call rather than a single effect. However, the description never states when to prefer this tool over sibling generators like generate_rain_overlay, generate_motion_pack, generate_water_reflection, or generate_library_variant_pack, and it gives no exclusions or prerequisites.

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

generate_sprite_anchorsC

Generate deterministic placement anchors from sprite geometry for scene composition and game-engine transforms.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
output_filenameYes
min_component_pixelsNo

TDQS

C2.7/5.0
Behavior2/5

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

With zero annotations, the description carries the full burden of behavioral disclosure. It reveals one trait — 'deterministic' output — and implies it reads sprite geometry, but it does not state whether the tool writes a new file, mutates the source sprite, what file formats are expected, or what an 'anchor' concretely consists of. For a tool that produces a derived artifact, this is a significant 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?

The description is a single front-loaded sentence with zero filler words and a clear verb-first structure. It is concise to the point of under-specification, but as a matter of economy and organization it is well formed.

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 3-parameter generation tool with no annotations, no output schema, and 0% schema description coverage, the description is far from sufficient. Central domain concepts are undefined: what anchor data looks like, what output format is produced, and what min_component_pixels controls. An agent would have to guess at the mechanics of the tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only loosely maps to parameters: 'sprite geometry' hints at filename and 'anchors' hints at output_filename. The non-obvious optional parameter min_component_pixels is completely unexplained — nothing indicates what a 'component' is or how the threshold affects anchor generation. An agent cannot confidently set this 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 (Generate), a concrete resource (placement anchors derived from sprite geometry), and an application context (scene composition, game-engine transforms). The term 'deterministic' adds useful precision. It doesn't explicitly distinguish itself from similar siblings like generate_sprite_hitboxes or generate_normal_map, but the anchor concept is named specifically enough to imply 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?

No guidance is given for when to pick this tool over alternatives. The purpose clause implies a use case (scene composition, game-engine transforms), but there are no exclusions, prerequisites, or explicit sibling routing, which is a real gap given the many geometry-generating siblings (generate_sprite_hitboxes, generate_normal_map, inspect_sprite_geometry) an agent must disambiguate.

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

generate_sprite_hitboxesB

Generate a deterministic collision manifest from sprite geometry using component or union hitboxes with bounded padding.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNocomponents
paddingNo
filenameYes
output_filenameYes
min_component_pixelsNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does add useful traits—'deterministic' and 'bounded padding'—but omits key side effects: whether it writes an output file, what format the manifest takes, whether existing outputs are overwritten, and what happens on invalid geometry. This is only minimal disclosure for a generative 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 entire description is a single 15-word sentence with no filler. The core action and resource are front-loaded, and the qualifiers are compact and informative.

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 five-parameter tool with no output schema and no annotations, the description leaves significant gaps: the output artifact is undefined ('manifest' format is unspecified), the source filename semantics are not clarified, and the role of min_component_pixels is unexplained. Basic invocation is inferable, but completeness is not.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only clarifies two parameters indirectly: 'component or union' maps to the mode enum and 'bounded padding' maps to padding. It adds no meaning for required parameters filename/output_filename or for min_component_pixels, leaving those to rely on their property names and defaults.

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 ('Generate'), a specific resource ('collision manifest'), and the source ('sprite geometry'), plus the two hitbox strategies ('component or union') and a constraint ('bounded padding'). This clearly differentiates it from siblings like generate_sprite_anchors, which are about anchors rather than collision geometry.

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 the tool: whenever a collision manifest derived from sprite geometry is needed. However, it never explicitly discusses prerequisites, exclusions, or when to prefer a sibling tool such as inspect_sprite_geometry or generate_sprite_anchors, leaving usage context largely implicit.

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

generate_sprite_shadowC

Generate a deterministic clipped sprite shadow from alpha data.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorYes
formatNo
opacityNo
offset_xYes
offset_yYes
input_filenameYes
output_filenameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does mention 'deterministic' and 'clipped', which are useful behavioral traits, but it fails to disclose the side effect of writing an output file (via output_filename), any required permissions, or whether the operation is read-only or destructive. For a tool that creates a file, this is a significant 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?

The description is a single, efficient sentence with no fluff. It front-loads the core action and key qualifiers. There is no redundancy or unnecessary detail, so it earns top marks for conciseness.

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

Completeness1/5

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

Given seven parameters (five required), no output schema, and no annotations, this description is severely under-specified. It does not explain what the parameters do, what the output looks like, how 'clipped' is defined, or any edge cases. An agent would have to guess at most of the input semantics, making the tool nearly impossible to use correctly without external documentation.

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

Parameters1/5

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

The schema has 0% description coverage, so the description must explain the parameters. It does not mention any of the seven parameters (input_filename, output_filename, offset_x, offset_y, color, format, opacity) by name or meaning. The only hint is 'alpha data', which is not a parameter. The description adds zero semantic value to the 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 states a clear verb ('Generate'), a specific resource ('sprite shadow'), and a defining input ('from alpha data'). It also includes two behavioral qualifiers ('deterministic', 'clipped') that help distinguish it from siblings like generate_sprite_hitboxes or generate_normal_map. However, it does not explicitly state the output format or scope limitations, so it's not as explicit as the best examples.

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. It does not mention any sibling tools, prerequisites, or conditions that would select this over others like generate_sprite_anchors or generate_sprite_hitboxes. The description is purely declarative with no contextual routing.

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

generate_water_causticsB

Generate deterministic animated light caustics over opaque water pixels for oceans, pools, beaches, and flooded interiors.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
colorYes
scaleNo
formatNo
framesNo
delay_msNo
intensityNo
input_filenameYes
output_filenameYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It discloses that the output is 'deterministic' and 'animated,' but does not explain side effects (e.g., whether the input image is modified), the need for an alpha channel or water mask, or the nature of the output file. Important operational details like format, frame counts, and file writing are left to inference.

Agents need to know what a tool does to the world before 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 states the action, key qualifiers (deterministic, animated, opaque water pixels), and application domains. Every word contributes to understanding, making it highly concise and well-structured.

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?

Given the tool's complexity (9 parameters, no output schema, no annotations), the description is incomplete. It does not explain the processing pipeline (e.g., input as a base image), the nature of the caustic effect, how parameters like intensity or delay_ms interact, or what the output format will be. An agent would need more information to invoke it correctly beyond a vague sense of the effect.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameter roles. It does not define any of the 9 parameters. While names like seed, scale, frames, and intensity are somewhat self-explanatory, the description only mentions determinism and animation without mapping them to parameters or explaining how they alter the effect. It adds minimal value over the raw 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 clearly states the tool's action and resource: 'Generate deterministic animated light caustics over opaque water pixels.' It also lists specific use cases (oceans, pools, beaches, flooded interiors) which gives concrete context. However, it does not explicitly distinguish it from sibling tools like generate_water_reflection, so it loses the top score for 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 usage contexts by naming environments (oceans, pools, beaches, flooded interiors) and targets opaque water pixels, implying when this effect is appropriate. But it provides no exclusion criteria, prerequisites, or comparisons to alternatives such as generate_water_reflection or generate_rain_overlay. The guidance is implied rather than explicit.

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

generate_water_reflectionC

Generate a deterministic animated reflection below a waterline for oceans, beaches, and wave scenes.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
formatNo
framesNo
opacityNo
delay_msNo
amplitudeNo
waterlineYes
input_filenameYes
output_filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal that the output is deterministic and animated, but it says nothing about file overwriting, input/output dependencies, resource usage, or failure modes—significant gaps for a tool that generates an output file.

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

Conciseness2/5

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

The single sentence has no fluff and is front-loaded with the core purpose, but it is drastically undersized for a tool with 9 parameters, no annotations, and no output schema. Brevity here is under-specification rather than effective conciseness.

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

Completeness1/5

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

Given the complexity signal of 9 parameters, 0% schema coverage, no annotations, and no output schema, one sentence is far from complete. An agent cannot determine how parameters interact, what file formats are expected, or what the generated output will look like.

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

Parameters1/5

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

Schema description coverage is 0% for 9 parameters, so the description must compensate, but it does not explain any parameter meanings. It only references 'waterline' as a conceptual location, leaving seed, amplitude, delay_ms, format, frames, opacity, input_filename, and output_filename entirely undocumented.

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 ('Generate') and a concrete resource ('deterministic animated reflection below a waterline'), and scopes it to oceans, beaches, and wave scenes. This clearly distinguishes it from sibling tools like generate_water_caustics or generate_beach_scene, which target different effects.

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 oceans, beaches, and wave scenes' gives an implied usage context, but it does not explicitly say when to choose this tool over related alternatives such as generate_water_caustics or generate_scene_effect_stack. There are no when-not-to-use conditions 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.

generate_world_mapB

Generate a seeded multi-biome map manifest and optional preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYes
widthYes
biomesYes
heightYes
detail_levelNomedium
map_filenameYes
landmark_countNo
preview_filenameNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, and it only reveals that generation is seeded and that a preview is optional. It does not mention file output behavior, overwrite risk, side effects on disk, or what a manifest contains. The behavioral context is too thin for a non-annotated 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?

One sentence with no filler; the core action is front-loaded and the key qualifiers (seeded, multi-biome, optional preview) are compactly included. Every word earns its place.

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 an 8-parameter tool with no output schema and no annotations, the single sentence is not contextually complete. It omits the meaning of required map dimensions, detail levels, landmark counts, file-naming behavior, and the structure of the returned manifest/preview. The description covers only the general idea, not enough to invoke the tool confidently.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but only seed, biomes, and preview are hinted at through 'seeded', 'multi-biome', and 'optional preview'. Width, height, detail_level, landmark_count, map_filename, and preview_filename semantics are left entirely to the schema names. This is partial compensation at best.

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 action and product: generating a seeded, multi-biome map manifest with an optional preview. This is more specific than the tool name and distinguishes it from sibling tools like generate_biome_transition or build_terrain_tileset, which produce different artifacts. The scope is immediately clear.

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 explicit when-to-use guidance, exclusions, or alternatives. An agent must infer from the name that this is for world-map generation, but it never says when it should be preferred over related generation tools. No conditions or use cases are given.

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

get_asset_job_statusC

Read one asynchronous asset job without returning raw pixels.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

TDQS

C2.7/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It states a read operation and a negative output trait, but does not mention side effects, required permissions, polling behavior, or what the response contains.

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 one short sentence with no filler, and the key limitation is front-loaded. However, it is so terse that it sacrifices useful 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 single-parameter status read with no output schema or annotations, the description is too sparse to fully equip an agent: it omits return contents, polling context, and error expectations. The name and sibling list hint at the purpose, but the description itself does not close the gap.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain job_id. It only implies that the job is an 'asynchronous asset job' and gives no format, provenance, or relationship to the output of start_asset_job.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Read') and resource ('one asynchronous asset job'), and the qualifier 'without returning raw pixels' distinguishes it from pixel-returning tools. It does not explicitly say 'status', though the tool name does, so it is clear but not maximally precise.

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 is provided about when to use this tool versus start_asset_job, cancel_asset_job, or batch_asset_job. The description only states what it does, not the conditions under which it should be chosen.

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

get_asset_libraryC

Search the deterministic asset/preset library with compact results for humans and agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
categoryNo

TDQS

C2.6/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden. It mentions 'deterministic' and 'compact results,' which hints at predictable behavior, but it does not disclose limitations, authentication needs, rate limits, or what 'compact results' actually means (e.g., no full metadata). This is a search tool, likely safe, but the description doesn't clarify whether it returns a list or a summary.

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 sentence, efficient, and front-loads the core action. It has no filler, though it could be slightly more specific about the result format, but it remains appropriately concise.

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?

Given the tool has 3 optional parameters, no output schema, and no annotations, the description is too thin. It doesn't explain what results look like, how parameters interact, or any usage nuances. The presence of many sibling tools calls for more disambiguation, which is missing.

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

Parameters1/5

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

The schema has 0% description coverage for parameters. The description adds no meaning to 'limit', 'query', or 'category' beyond their names, which are self-explanatory but could benefit from format details (e.g., query syntax, category naming). It fails to compensate for the absence of schema 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 ('Search') and resource ('deterministic asset/preset library') and mentions the result type ('compact results'), which is clear. However, it doesn't explicitly differentiate from very similar siblings like 'get_asset_library_item' or 'summarize_asset_library', so it's not 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 implies this is for searching the library, but there is no explicit guidance on when to use this tool versus siblings like 'get_asset_library_item' (which likely fetches a specific item) or 'get_tools_search' (which searches tools, not assets). No exclusions or alternatives are named.

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

get_asset_library_itemA

Resolve one library item and its README, preview, sprite sheet, and variants.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4/5.0
Behavior3/5

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

There are no annotations, so the description carries the disclosure burden. It reveals that the operation is a read-like 'resolve' that returns multiple components, but it does not explicitly state that it is side-effect-free or describe error/not-found behavior. Its read intent is reasonably clear from the verb and 'get_' naming.

Agents need to know what a tool does to the world before 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. Every listed component is informative, and no redundant language is present.

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 low complexity (one parameter, no output schema, no annotations), the description is mostly complete: it states the action and the returned artifacts. It could be improved by noting that the id likely comes from get_asset_library, but that is a minor gap for a straightforward retrieval 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?

The schema only documents id as a non-empty string, so description must add meaning. 'Library item' weakly ties the id to the item being resolved, but the description does not explain where to obtain the id or any expected format. It partially compensates for the 0% schema coverage but not 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?

The description states a specific verb ('Resolve') with a clear resource ('one library item') and enumerates what is returned: README, preview, sprite sheet, and variants. The singular 'one' distinguishes it from the sibling get_asset_library, which is presumably a list 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?

The description makes it clear this is the tool for retrieving a single library item's full set of associated artifacts, which is useful context for tool selection. It does not explicitly call out alternatives or say 'use get_asset_library for listing', but the singular framing implies that distinction.

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

get_asset_presetC

Resolve a ready-to-compose scene preset and its recommended MCP tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description bears the full burden of behavioral disclosure. It adds that the result is 'ready-to-compose' and includes 'recommended MCP tools,' but it does not clarify whether resolution is a read-only lookup, how outputs are structured, what errors may occur, or any prerequisites.

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 filler or redundancy. It communicates the core output in just ten words, though it could have traded some brevity for more param or usage detail.

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 is simple in terms of parameter count, but with no output schema and no annotations, the one-sentence description leaves significant gaps: it never defines the id parameter, explains the resolution behavior, or describes the shape of the returned preset and tool recommendations.

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

Parameters1/5

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

The single parameter 'id' is not explained anywhere in the description or schema beyond minLength 1. Since schema description coverage is 0%, the description was obligated to clarify what id represents, but it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Resolve') and names a concrete resource ('a ready-to-compose scene preset and its recommended MCP tools'). It communicates what the tool produces, though it does not explicitly distinguish it from siblings like generate_asset_preset or compose_asset_preset.

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 is for retrieving a ready-to-compose preset, but gives no explicit when-to-use guidance, no exclusions, and no mention of when alternatives such as generate_asset_preset or recommend_asset_scene would be more appropriate.

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

get_color_statsC

Return JSON color usage statistics for one flattened frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
filenameYes
frame_indexNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It states the output is JSON and operates on a flattened frame, but doesn't mention side effects (likely none) or performance expectations. Since it's a read operation, the lack of explicit non-destructive hint is notable.

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, clear, front-loaded sentence. It communicates the essential action and output without any waste, making it concise and well-structured.

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?

Given the lack of output schema and annotations, the description is incomplete. It doesn't explain what 'color usage statistics' includes (e.g., counts, percentages, top colors), nor does it clarify parameter semantics. For a tool with three parameters and no schema descriptions, this is inadequate.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for what parameters like 'top' and 'frame_index' mean. The description doesn't mention that 'top' likely limits the number of colors returned, nor that 'frame_index' selects which frame. The schema has defaults but no descriptions, so the description fails to add any meaning beyond the raw names.

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 'Return JSON color usage statistics for one flattened frame' clearly states it returns color statistics for a frame, which is specific. However, it doesn't differentiate from siblings like 'get_palette' or 'extract_palette' which could be related to color analysis, so it's not immediately distinct.

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 other color-related tools. The description says 'flattened frame' but doesn't explain why a user would choose this over get_palette or similar tools, nor does it mention any exclusions or preferred conditions.

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

get_composite_pixelC

Read one RGBA pixel from the visible flattened composite.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
filenameYes
frame_indexNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only says the tool reads and returns one RGBA pixel. It does not explain coordinate semantics, frame_index handling, visibility rules, or edge-case behavior such as out-of-bounds coordinates.

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 operation and target front-loaded and no wasted words. It is concise and scannable, though the brevity contributes to the missing parameter and behavior detail penalized elsewhere.

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?

Given no output schema, no annotations, and 0% schema description coverage, the description is not complete enough to support confident invocation. It omits coordinate system, frame selection, edge cases, and a precise return-format statement beyond 'RGBA pixel.'

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

Parameters1/5

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

Schema description coverage is 0% and the description names none of the four parameters. The agent receives no explanation of what filename means, how x and y coordinates are interpreted, or how frame_index affects the result beyond the bare schema types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 clear verb ('Read') and a precise resource ('one RGBA pixel from the visible flattened composite'), which helps distinguish it from layer-based or area-based pixel tools like get_pixel_color. However, it does not explicitly contrast itself with siblings such as get_composite_rect, so full 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 Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives like get_pixel_color, get_pixels_rect, or get_composite_rect. The phrase 'visible flattened composite' implies a use context, but there are no explicit when-to-use or when-not-to-use statements.

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

get_composite_rectC

Read a visible flattened composite region as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
widthYes
heightYes
filenameYes
frame_indexNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It indicates a read operation on visible flattened composite data, which is useful, but it does not explain coordinate space, how visibility/blending is resolved, frame handling, return structure, or any edge cases. For a read tool with no annotation safety profile, this is a meaningful 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?

The description is a single sentence with no filler. It front-loads the operation and output type. It is concise without being purely tautological like 'Process', though it sacrifices useful detail for brevity.

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 tool with 6 parameters, no annotations, no output schema, and no usage guidance, this description is incomplete. An agent cannot determine what the returned JSON contains, how coordinates map to the visible composite, or what 'flattened' includes. The tool likely needs clarification to be invoked correctly on the first try.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides zero parameter-level detail. Although names like x, y, width, height, filename, and frame_index are somewhat self-explanatory, the description does not clarify their combined semantics, units, or how frame_index interacts with the composite region.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Read') and identifies a clear resource ('visible flattened composite region') with an output format ('as JSON'). It conveys that it reads composited visible content rather than individual layers, which distinguishes it from siblings like get_pixels_rect or get_composite_pixel, though it does not explicitly name an alternative.

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 is given on when to use this tool versus siblings such as get_pixels_rect, get_composite_pixel, or inspect_sprite_geometry. The phrase 'visible flattened composite' implies when composited output is needed, but the description does not state criteria, 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_paletteB

Return the active sprite palette as a JSON color array.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

TDQS

B3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only retrieval via 'Return', which hints at no side effects, and it discloses the output format. However, it does not explicitly state that it does not modify anything, nor does it mention behavior if no sprite is active or if the filename is invalid. A getter without annotations should state its non-mutating nature more explicitly.

Agents need to know what a tool does to the world before 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, focused sentence with no filler. It front-loads the action ('Return') and adds the essential output detail ('JSON color array'). Nothing extraneous.

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 tool with one required parameter, no output schema, and no annotations, the description leaves key gaps: it does not explain the role of `filename`, any prerequisites (e.g., an open sprite), error behavior, or return format beyond 'color array'. An agent cannot confidently call this tool correctly without additional context, especially given the ambiguity introduced by the undocumented parameter.

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

Parameters2/5

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

Schema description coverage is 0% for the only parameter, `filename`, and the tool description never mentions the parameter. The parameter name suggests a file name, but its exact role—whether it is the sprite file from which to read the palette or a palette file—is ambiguous. The description does not compensate for the missing schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Return the active sprite palette') and the output format ('JSON color array'). It is clear about what is retrieved, and the verb 'Return' distinguishes it from mutating palette tools. However, it does not explicitly differentiate from sibling tools like extract_palette or get_color_stats, so it misses the full sibling-distinguishing criterion.

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. With many palette-related sibling tools, an agent receives no help choosing this one over set_palette, extract_palette, or list_palette_presets.

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

get_pixel_colorC

Read one RGBA pixel from a cel.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
filenameYes
layer_nameNo
frame_indexNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation is a read, but does not disclose what happens if coordinates are out of bounds, whether the cel must be visible, how layer_name and frame_index interact, or whether the returned pixel is pre- or post-composite. For a read tool, the lack of error/edge-case behavior is a notable gap.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action and output format. Every word earns its place; there is no fluff or repetition of schema details.

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 tool with 5 parameters, no annotations, and no output schema, the description is too thin. It does not explain coordinate semantics, layer/frame defaults, error behavior, or the return value structure beyond 'RGBA'. An agent would need to open the schema and guess at conventions, which is risky for a pixel-level read operation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the parameters. It does not explain what 'cel' means in this context, how x/y are measured (pixel coordinates relative to the cel or canvas), what layer_name defaults to, or what frame_index=1 means (1-based indexing is unusual and should be called out). The description adds almost no parameter-level meaning beyond the schema's names and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Read one RGBA pixel from a cel' clearly states the verb (read), the resource (a pixel from a cel), and the output format (RGBA). It is concise and unambiguous. It doesn't explicitly distinguish from sibling tools like get_pixels_rect or get_composite_pixel, but the singular pixel scope is clear enough to differentiate it from bulk read 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 provides no guidance on when to use this tool versus alternatives like get_pixels_rect, get_composite_pixel, or get_color_stats. There is no mention of prerequisites (e.g., cel must exist, layer/frame context) or exclusions. The agent must infer usage from the name and schema alone.

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

get_pixels_rectB

Read a rectangular RGBA region from a cel as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
widthYes
heightYes
filenameYes
layer_nameNo
frame_indexNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does disclose that the operation is read-only and that the result is JSON-encoded RGBA data. However, it omits useful behavioral context such as coordinate-space semantics, bounds/out-of-range behavior, the meaning of layer_name and frame_index defaults, and whether regions are clipped or error when outside the cel.

Agents need to know what a tool does to the world before 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 short, front-loaded sentence that conveys the operation, resource, data format, and output type. There is no padding, repetition, or unnecessary detail.

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 7 parameters, 0% schema description coverage, no annotations, and no output schema. The description is too sparse for an agent to confidently call it correctly: it doesn't clarify the cel coordinate system, how layer_name and frame_index select the cel, or what the JSON structure looks like. More context is needed for reliable invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameters. It provides minimal inference for width/height/region and 'from a cel', but it does not explain x/y coordinates, layer_name, frame_index, or how the rectangle maps to cel coordinates. The schema's raw integer bounds offer no semantic meaning.

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'), a specific resource ('a rectangular RGBA region from a cel'), and the output format ('as JSON'). It clearly distinguishes itself from composite/read tools like get_composite_rect by anchoring the operation to a cel, while still being immediately understandable.

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 is provided about when to use this tool versus alternatives such as get_pixel_color, get_composite_rect, or get_sprite_info. The term 'from a cel' weakly implies it reads raw cel pixels rather than composite pixels, but no explicit when-to-use or when-not-to-use guidance is present.

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

get_sprite_infoA

Read sprite dimensions, color mode, frame durations, layers, and tags as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavior and says 'Read', making clear this is a non-mutating operation, and adds 'as JSON' to set response expectations. It lists the specific information returned, which is good context, though it does not mention error handling or access 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?

The description is one concise sentence that front-loads the verb and resource and packs the entire return surface into a compact list. Every word 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?

This is a simple one-parameter metadata read with no output schema, and the description lists exactly what will be returned as JSON. An agent can invoke it correctly based on this text; only minor details such as error behavior are 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 0% and the description does not explicitly explain the filename parameter, but the single parameter name and the tool's 'get_sprite_info' purpose make its meaning self-evident. The description provides context that the filename refers to a sprite, which slightly compensates for the missing schema 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?

The description uses a clear verb and resource ('Read sprite') and enumerates the exact data returned: dimensions, color mode, frame durations, layers, and tags. It is clear about what the tool does, though it does not explicitly distinguish itself from closely related siblings such as inspect_sprite_geometry.

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 when an agent needs sprite metadata as JSON, but it never states when to prefer this tool over alternatives like inspect_sprite_geometry or get_tilemap_info. There are no explicit exclusions, so the guidance is adequate but not explicit.

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

get_tile_atB

Read the tile index at a tilemap grid coordinate.

ParametersJSON Schema
NameRequiredDescriptionDefault
colYes
rowYes
filenameYes
layer_nameYes
frame_indexYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description's main behavioral disclosure is the word 'read', which signals a non-mutating operation. It does not cover out-of-bounds coordinates, empty tiles, or missing frames/layers, but it does accurately convey the basic side-effect-free nature of the 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?

One sentence with no filler; it states what is read and where. The description is appropriately small for a simple getter and loses no points for being brief because it says the essentials.

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 core purpose is conveyed in enough detail to guess the correct call, but with five required parameters, no output schema, and no annotations, the description leaves return type, coordinate bounds, and error behavior implicit. This is serviceable but minimal.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only adds the phrase 'grid coordinate' to clarify col/row. It does not explain the role of filename, layer_name, or frame_index, nor the indexing convention, so the description does not compensate for the schema's lack of parameter 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 names the operation ('read'), the object ('tile index'), and the location ('tilemap grid coordinate'), so the tool's purpose is clear. It does not explicitly contrast it with sibling tools like set_tiles or get_tilemap_info, but the read verb makes the distinction fairly obvious.

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: use it to read a tile index from a grid coordinate. There is no explicit when-to-use/when-not-to-use guidance or mention of alternatives, which leaves an agent to infer how it fits among the many tilemap-related siblings.

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

get_tilemap_infoB

Read tile size, tileset count, and map dimensions.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
layer_nameYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. 'Read' clearly signals a non-mutating operation, which is valuable, but it does not disclose possible failure modes, return structure, or whether the information is per layer or for the whole tilemap.

Agents need to know what a tool does to the world before 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 or redundancy. Every word contributes to conveying the tool's primary purpose.

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 simple read tool with two obvious string parameters, the description is nearly sufficient, and listing the returned values compensates somewhat for the missing output schema. However, it leaves the exact role of layer_name ambiguous and offers no usage context, making it minimally viable rather than complete.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain either parameter. The parameter names 'filename' and 'layer_name' are mildly self-explanatory, but the description does not clarify what layer_name refers to or what filename format/path is expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Read') and resource ('tilemap info'), and lists the concrete attributes returned: tile size, tileset count, and map dimensions. It is clear what the tool does, though it does not explicitly differentiate it from sibling getter tools such as get_sprite_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 description implies use when an agent needs tilemap-level metadata like tile size or dimensions, but it gives no explicit when-to-use guidance or alternatives. There are no exclusions or context clues about when another tool would be a better fit.

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

get_tools_by_folderC

List concise tools in one folder. Use a parent folder to inspect its subfolders.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action of listing, without mentioning side effects (likely read-only), ordering, pagination, or what 'concise' means in terms of tool selection. There is no statement about permissions or return format, leaving significant behavioral ambiguity.

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

Conciseness4/5

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

The description is two sentences with no filler. The primary action is front-loaded, and the usage hint is concise. However, the second sentence could be integrated more naturally, but overall it is efficient and well-structured.

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?

Given the lack of annotations, no output schema, and a single ambiguous parameter, the description is insufficient. It fails to explain the return format, the meaning of 'concise tools', or any constraints on folder usage. An agent would struggle to know exactly what this tool returns and how to structure the input correctly.

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

Parameters2/5

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

The schema has 0% description coverage, so the description must explain the 'folder' parameter. It mentions 'one folder' and 'parent folder' but does not clarify whether the value is a path, ID, or display name, nor does it define the folder hierarchy. The description adds minimal semantic value beyond the schema's existence.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action ('List') on a specific resource ('concise tools') scoped to a single folder, which differentiates it from broader tools like get_tools_list or search tools. However, the term 'concise tools' is ambiguous—it likely means tools with short descriptions or a filtered subset—which slightly undermines precision.

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 provides a single usage hint ('Use a parent folder to inspect its subfolders') which implies a traversal pattern, but it does not explicitly state when to prefer this over siblings like get_tools_search or get_tools_list. No exclusions or alternatives are named, leaving some inference required.

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

get_tools_listB

List tool folders and counts. Use this before loading a tool folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_toolsNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, and it discloses only the return scope ('tool folders and counts') and a usage hint. It does not mention the optional include_tools behavior, what the counts represent, or any implications of calling it, leaving the agent to guess at the tool's full 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 with zero filler: the first states the action and scope, the second states when to call it. The usage cue is front-loaded immediately after the purpose, and every word 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 one-parameter listing tool the definition is serviceable: it states the return object at a high level ('tool folders and counts') and the intended call timing. However, with no output schema, no explanation of the sole parameter, and no explicit routing away from get_tools_by_folder or get_tools_search, an agent could still misuse it.

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

Parameters2/5

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

Schema description coverage is 0% and the description never mentions include_tools, so it fails to compensate for the schema gap. The parameter name is self-explanatory and the default is sensible, but the description adds no meaning about what including tools actually yields (full tool details vs. names only).

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('List tool folders and counts') that clearly signals an overview-style tool rather than a tool-level lookup. It implicitly distinguishes itself from siblings like get_tools_by_folder and get_tools_search, but it never names them, leaving some differentiation 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?

'Use this before loading a tool folder' provides a clear trigger condition for when the tool is appropriate. It gives useful context but stops short of naming alternatives or stating when not to use it, so exclusions are absent.

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

harmonize_asset_paletteA

Apply a deterministic accent palette to a PNG or GIF, preserve transparency and timing, and cap output colors without overwriting the source.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
strengthNo
max_colorsNo
accent_colorYes
input_filenameYes
output_filenameYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the burden and discloses meaningful behavior: determinism, transparency/timing preservation, color capping, and non-destructive output. It does not mention output-file creation details or failure/error behavior, but the core side effects are addressed.

Agents need to know what a tool does to the world before 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 packs the key constraints without filler. Every clause earns its place and the most important distinctive behaviors lead.

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 6-parameter, no-annotation, no-output-schema tool, the description covers key constraints but leaves important operational details undefined: how 'deterministic' is achieved, what strength controls, and what the output file behavior is beyond not overwriting the source. It is usable but relies on the schema for defaults and ranges.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate; it links 'PNG or GIF' to format, 'accent palette' to accent_color, and 'cap output colors' to max_colors. However, the meaning of strength (0–1) and the exact role of input/output filenames are not elaborated, leaving a partial semantic gap.

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 operation ('apply a deterministic accent palette') on a defined resource ('PNG or GIF') with concrete constraints (preserve transparency/timing, cap colors, no source overwrite). This distinguishes it from sibling palette tools like set_palette or quantize_to_palette, which operate in-place and without these guarantees.

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 format and preservation caveats imply usage for recoloring PNG/GIF assets while keeping transparency and animation timing, but no explicit when-to-use/when-not-to-use guidance or alternative tool names are given. With dozens of sibling tools, the routing burden falls on the agent.

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

import_image_as_layerC

Import an image into a named layer and frame, creating the layer when it does not exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
filenameYes
image_pathYes
layer_nameYes
frame_indexNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions layer creation but does not disclose other important behaviors: how the image is placed (replacing, overlaying, positioning relative to x/y), whether existing layer content is affected, how frame_index influences the operation, or any potential error conditions (e.g., invalid image_path). The description is minimally transparent and leaves significant behavioral uncertainty.

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 a single, efficient sentence with no wasted words. However, it is under-specified; the conciseness comes at the cost of missing critical details. It is not verbose, but it is also not appropriately informative. It earns a middle score for being compact yet lacking necessary elaboration.

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

Completeness1/5

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

For a tool with 6 parameters, no annotations, no output schema, and a large sibling set, the description is severely incomplete. It does not explain return values, side effects on the sprite/canvas, coordinate system semantics, frame handling, or interaction with other layers. An agent cannot call this tool correctly without additional information. The description is far from 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.

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameter meaning. It does not. It mentions 'named layer and frame' but does not map that to layer_name or frame_index, nor does it explain filename vs. image_path, the meaning of x/y coordinates, or the default behavior of frame_index. Agents have no idea what each parameter controls without opening the schema, and even then the schema has no 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?

The description states a clear verb ('import'), a specific resource ('an image'), and a precise target ('into a named layer and frame'). It also discloses the auto-creation behavior ('creating the layer when it does not exist'), which distinguishes it from other layer-related tools like add_layer or set_layer. This gives an agent a concrete understanding of what the tool does.

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

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 placing an image into a specific layer, but it does not explicitly state when to use it over alternatives, nor does it mention when not to use it. It does not reference sibling tools like draw_pixels or add_layer, leaving the agent to infer the appropriate context. No exclusionary guidance is provided.

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

inspect_animation_qualityB

Audit an animation for duplicate frames, timing, palette drift, movement bounds, and loop seam issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It does convey what is analyzed, and 'Audit' suggests a read-only inspection. However, it does not state whether the operation modifies anything, how results are returned, or whether any preconditions apply.

Agents need to know what a tool does to the world before 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 tightly packed sentence that names the operation and all key audit dimensions. Every word contributes meaning, and there is no filler or restating of the tool name.

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 tool with no annotations and no output schema, the description should clarify what the audit returns (e.g., a report, pass/fail, or metrics) and what conditions are needed to run it. The current description tells an agent what it audits but not what it gets back, leaving an important gap.

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

Parameters2/5

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

Schema description coverage is 0% for the single 'filename' parameter, and the description never mentions the parameter, accepted file formats, or how the filename is resolved. The parameter name is self-explanatory, but the description does not compensate for the absence of schema 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 uses a specific verb ('Audit') and resource ('an animation'), plus a concrete list of quality dimensions: duplicate frames, timing, palette drift, movement bounds, and loop seams. This is clear, though it does not explicitly contrast with the sibling audit_animation 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 guidance on when to use this tool versus audit_animation, inspect_asset_batch, or other inspection tools. The verb 'Audit' implies appropriateness for quality checks, but no explicit when/when-not or alternative conditions are given.

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

inspect_asset_batchB

Inspect up to 32 sprites in one deterministic quality pass and return a compact collection summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenamesYes
max_colorsNo
max_isolated_pixelsNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral transparency burden. It discloses that the operation is deterministic and returns a 'compact collection summary', which is useful context beyond the name. However, it does not clarify what 'quality pass' evaluates, whether there are side effects, or what happens on failure, leaving meaningful 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 entire description is one efficient, front-loaded sentence with no filler. Every phrase earns its place, specifying the action, scope, determinism, and output type.

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 description is adequate for a simple inspection tool but not complete: there is no output schema, no explanation of the returned summary format, and no details on the quality thresholds or how the two optional parameters affect behavior. Given the tool has three parameters and no annotation support, more context is needed for confident use.

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

Parameters2/5

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

The input schema has 0% description coverage and the description does not compensate. It only hints at the filenames parameter via 'up to 32 sprites', leaving max_colors and max_isolated_pixels entirely unexplained in relation to the quality pass. An agent would not understand what to pass for those parameters from 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?

The description clearly identifies a specific verb ('Inspect'), a resource ('sprites'), and a bounded scope ('up to 32 sprites'), which distinguishes it from sibling tools like inspect_asset_bundle or inspect_animation_quality. However, it does not explicitly name or contrast sibling tools, and 'quality pass' remains somewhat vague.

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 'up to 32 sprites in one deterministic quality pass' implies a batch-inspection scenario, giving some context about when to use the tool. But it offers no explicit when-to-use or when-not-to-use guidance, nor does it reference alternatives such as inspect_asset_bundle or inspect_sprite_geometry.

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

inspect_asset_bundleC

Inspect one asset and return compact quality violations and deterministic recommendations in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
max_colorsNo
max_isolated_pixelsNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read operation by saying 'inspect' and 'return', but it does not explicitly state that it has no side effects, nor does it mention any permissions or limitations. It doesn't describe any behavioral quirks or edge cases.

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

Conciseness4/5

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

The description is a single sentence that is concise and front-loaded with the primary action. It efficiently states the purpose without fluff. However, it could be slightly expanded to cover parameters without sacrificing 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?

For a tool with three parameters, no output schema, and no annotations, the description is incomplete. It does not explain how parameters affect the inspection, what the output looks like, or any constraints. An agent would have to guess at parameter semantics.

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

Parameters1/5

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

The schema has zero description coverage for its three parameters. The description does not explain the purpose of 'filename', 'max_colors', or 'max_isolated_pixels'. It only mentions 'one asset' but doesn't map to parameters. This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it inspects one asset and returns quality violations and recommendations. It identifies the resource (asset) and the action (inspect), and the outcome. However, it does not distinguish it from sibling tools like inspect_asset_batch or inspect_animation_quality, so it lacks 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention that it is for a single asset, nor does it recommend other tools for batches or animations. There is no exclusions or context.

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

inspect_referenceB

Analyze reference dimensions, dominant colors, contrast, edges, and transparency.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. 'Analyze' implies a read-only, non-destructive operation and the listed properties give a sense of scope, but there is no statement about side effects, error conditions, or what the returned analysis 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?

The description is a single sentence with no filler, an active verb up front, and every listed attribute adds useful information. It is appropriately compact for a one-parameter analysis 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?

The description tells an agent what will be analyzed but, with no output schema and no annotations, omits the result shape and any usage caveats. For a simple one-parameter read-only tool this is adequate, though not fully complete.

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

Parameters2/5

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

Schema description coverage is 0%, and the description never mentions the filename parameter or constrains its format, path, or accepted file types. The only inferable meaning comes from the tool name and parameter property name, which is weaker than explicit parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Analyze') and names a resource ('reference') with an explicit list of attributes: dimensions, dominant colors, contrast, edges, and transparency. This gives enough specificity to distinguish it from siblings like inspect_sprite_geometry, though 'reference' is not fully disambiguated.

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 is given for when to use this tool versus the many sibling inspection tools such as inspect_sprite_geometry, inspect_asset_bundle, or inspect_animation_quality. The description implies an analysis context but provides no selection criteria, exclusions, or prerequisites.

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

inspect_sprite_geometryA

Inspect per-frame alpha bounds, connected components, baseline, and bottom-center pivots for scene placement.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
min_component_pixelsNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosing behavior, and it reasonably conveys a read-only inspection operation through the verb 'Inspect'. It also lists the computed geometric quantities, giving agents a clear idea of what the tool produces, though it does not explicitly state that the sprite is unmodified.

Agents need to know what a tool does to the world before 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, tightly worded sentence front-loads the main action and lists the key outputs without filler. Every word adds 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 lack of an output schema, the description helpfully enumerates the categories of results and gives a placement context. It does not describe output structure or the effect of min_component_pixels, but the tool is a relatively simple read-only geometry inspection, so the essential context is present.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it does not explain either parameter. filename is self-evident, but min_component_pixels—its meaning, effect on connected components, and recommended values—is left entirely to the schema's name and numeric bounds.

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 ('Inspect') with a specific resource ('sprite geometry') and enumerates concrete outputs: per-frame alpha bounds, connected components, baseline, and bottom-center pivots. This clearly differentiates it from generation tools like generate_sprite_hitboxes or generate_sprite_anchors.

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 scene placement' gives a clear intended use case, but the description does not state when to prefer this tool over alternatives or when not to use it. It relies on the reader to infer appropriate context from the tool type and sibling names.

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

invert_colorsC

Apply Aseprite native color inversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
widthNo
heightNo
filenameYes
layer_nameNo
frame_indexNo

TDQS

C2.1/5.0
Behavior1/5

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

With no annotations, the description carries the full behavioral burden, but it only says 'Apply' without disclosing whether the operation modifies the sprite in place, affects a layer or cel, is reversible, or has side effects. This is effectively a label rather than a behavioral explanation.

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

Conciseness2/5

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

The description is brief and front-loaded, but it is under-specified for a tool with 7 parameters and no annotations. Its brevity approaches truncation rather than effective conciseness, and it lacks any structural breakdown of behavior or parameters.

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

Completeness1/5

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

For a mutation tool with 7 parameters, no annotations, no output schema, and no parameter documentation, this one-sentence description is far too incomplete. The agent cannot determine what will be modified, which region is affected, or what the expected result will be.

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

Parameters1/5

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

There are 7 parameters and 0% schema description coverage, yet the description mentions none of them. It does not explain how filename, layer_name, frame_index, x, y, width, or height relate to the inversion operation, so the agent must guess their 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 operation, 'Apply Aseprite native color inversion,' which clearly identifies the resource and action. It distinguishes itself from nearby color tools like replace_color and adjust_hsl, though it does not explicitly name 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 guidance on when to use this tool versus alternatives such as adjust_hsl or replace_color. The description does not mention any preconditions, target scope, or situations where another tool would be more appropriate.

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

list_convolution_matricesA

List the built-in convolution matrices supported by Aseprite.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that the tool is read-only and lists built-in matrices, which implies no mutation. However, it doesn't describe the return format, whether the list is exhaustive, or whether it reflects the current Aseprite version. For a simple list tool, 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?

One sentence, front-loaded with the verb and resource. Every word earns its place. No filler or redundant 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?

For a zero-parameter list tool, the description is mostly complete. The main gap is the lack of detail about the return value (e.g., names, identifiers, or metadata) and how the list relates to apply_convolution. Since there is no output schema, a brief note on what the returned list contains would improve completeness.

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?

The tool has zero parameters, so the schema is trivially complete. The description adds the key semantic context: the list is of built-in convolution matrices supported by Aseprite. With no parameters, the baseline is 4, and the description meets 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?

The description states a specific verb ('List') and resource ('built-in convolution matrices supported by Aseprite'), which clearly identifies what the tool does. It doesn't explicitly distinguish from siblings, but the resource is specific enough that an agent can infer it is an informational listing tool rather than a mutating one.

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 context: call this when you need to know which convolution matrices Aseprite supports, likely before using apply_convolution. It does not explicitly state when not to use it or name alternatives, but the sibling list includes apply_convolution, which gives the agent a natural pairing. No explicit exclusions or alternatives are provided.

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

list_palette_presetsA

List built-in retro palette presets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden; the verb 'List' communicates a read-only operation with no mutation or argument side effects. It does not say what exactly is returned (names, color maps, metadata), but for this zero-parameter tool the core behavior is transparent.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler, and every word ('built-in', 'retro') contributes meaning. It is appropriately sized for a zero-parameter list operation.

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 no parameters, no output schema, and no annotations, the description states the action and scope sufficiently for an agent to invoke it. It would be slightly stronger if it mentioned that the returned preset names are reusable with apply_palette_preset, but that is not required for basic 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?

The input schema is empty (0 parameters), so the baseline is 4; there are no parameters for the description to clarify. It still adds value by specifying that the items being listed are built-in retro presets rather than user-defined palettes.

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 an explicit resource ('built-in retro palette presets'), and the qualifiers 'built-in' and 'retro' separate this from general palette inspection or apply tools. It does more than restate the tool name, so an agent can tell what is being listed.

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 no explicit when/when-not guidance and names no alternative tool, so an agent must infer that listing is the right action when it needs available built-in retro presets. The intended use is implied by the verb and noun but not contrasted with siblings such as apply_palette_preset or get_palette.

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

list_slicesB

List slice bounds, centers, and pivots as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden; 'List ... as JSON' clearly conveys a non-mutating read operation and the return encoding. However, it does not disclose error handling for missing/invalid filenames, ordering/filtering behavior, or what an empty slice set means.

Agents need to know what a tool does to the world before 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. Every word contributes to identifying the action, target, and return format, which is appropriately concise for a simple one-parameter read 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?

The tool is simple and the description names the key output fields, but it leaves filename semantics and the exact JSON shape to inference. Without an output schema, an agent would benefit from more explicit context about what the returned JSON contains.

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

Parameters2/5

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

The only parameter, filename, is never mentioned in the description, and the schema provides only type and minLength. With 0% schema description coverage, the description needed to clarify whether filename is a path, asset name, or something else—and it does not.

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 action ('List') on a specific resource ('slice bounds, centers, and pivots') and states the output format ('as JSON'). This clearly distinguishes it from mutation siblings like create_slice, set_slice_center, and delete_slice.

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 is given about when to choose this tool over alternatives such as get_sprite_info or inspect_sprite_geometry, and no conditions or exclusions are stated. The verb 'List' implies read-only inspection, but the description does not provide routing context.

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

list_text_fontsA

List discoverable TrueType and OpenType fonts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. 'List' signals a non-destructive read operation, and 'discoverable TrueType and OpenType fonts' defines the scope of what will be returned. It could add detail about whether results are system-wide or project-specific, but the core behavior is transparent.

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

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 conveys the action, the resource type, and the format restriction 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 zero-parameter, no-output-schema list operation, the description is nearly complete. It tells the agent what it will get (font listings) and the relevant format constraints. It stops short of describing the exact return shape, but the meaning is unambiguous enough for practical use.

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?

The tool accepts no parameters, so there is no parameter semantics to document. The description correctly focuses on what the tool returns rather than arguments, meeting the baseline for a zero-parameter tool.

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 identifies a distinct resource (discoverable TrueType and OpenType fonts). It clearly stands apart from siblings like measure_text or draw_text, which consume fonts rather than list them.

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 tool's context clear: use it when you need to discover available fonts. It does not name alternatives, but no sibling tool shares this exact purpose, so explicit exclusions are unnecessary.

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

measure_textA

Measure a text run without changing a sprite.

ParametersJSON Schema
NameRequiredDescriptionDefault
boldNo
fontYes
sizeNo
textYes
antialiasNo
letter_spacingNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It clearly states that the operation does not mutate a sprite, which is useful. But it does not disclose what is returned, how font resolution works, or whether an invalid font causes an error.

Agents need to know what a tool does to the world before 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 short sentence with no filler. The essential identifying behavior is front-loaded, and every word contributes 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?

While the tool appears simple, there is no output schema and no description of the return value, so an agent cannot predict what 'measure' yields. Parameter semantics and valid font usage are also left undocumented, making this incomplete for reliable invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to explain the six parameters, but it only says 'text run'. It provides no meaning for font, size, bold, letter_spacing, or antialias, and notably leaves the integer type of 'bold' and the scaling semantics of 'size' unexplained.

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 a specific verb and resource: 'Measure a text run'. The qualifier 'without changing a sprite' clearly distinguishes it from rendering tools like draw_text. The tool's purpose is immediately 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?

The description implies a read-only measurement use case and signals that it should not be used when the goal is to draw or modify a sprite. However, it does not explicitly name alternatives such as draw_text or state when to prefer this tool over related text or layout operations.

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

merge_layer_downC

Merge a layer into the layer below it.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
layer_nameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full behavioral burden. It discloses the basic action and direction but does not state that merging is destructive, that the upper layer is typically removed, or what happens to layer order, cels, or frames. The agent cannot anticipate the side effects of this 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?

The description is a single, tight sentence with no filler and the action is front-loaded. It is appropriately concise for a simple operation, even though the brevity contributes to gaps 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?

For a mutating tool with no annotations and no output schema, the one-line description is incomplete. It does not mention prerequisites such as requiring a layer below the target, irreversibility, or the resulting layer state, so an agent cannot fully predict the outcome of invoking it.

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

Parameters1/5

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

Schema description coverage is 0% and the parameters `filename` and `layer_name` have no descriptions. The description does not clarify which layer is the source, which is the destination, or what `filename` refers to, so it fails to compensate for the missing schema guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the action ('merge') and the specific target ('the layer below it'), making the operation concrete. It is distinguishable from related sibling tools like flatten_sprite, reorder_layer, or delete_layer, though it does not explicitly call those distinctions 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?

The description defines the operation but provides no guidance on when to prefer it over related tools such as flatten_sprite or delete_layer. There are no preconditions, exclusions, or alternative conditions mentioned, leaving the agent to infer usage entirely 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.

move_regionC

Move a rectangular region within a cel, clearing its source.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
widthYes
dest_xYes
dest_yYes
heightYes
filenameYes
layer_nameYes
frame_indexYes

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal the crucial side effect of clearing the source, which is helpful, but it doesn't state what happens on overlap, whether clipping occurs, coordinate conventions, or any constraints on the destination. For a mutation tool, this is a significant gap.

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

Conciseness2/5

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

The description is a single sentence, which is concise, but it's under-specified for a tool with 9 required parameters. The brevity comes at the expense of essential information, so it's not appropriate sizing; it reads as a stub rather than a complete guide.

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

Completeness1/5

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

Given the complexity (9 parameters, no output schema, no annotations), the description is grossly incomplete. It doesn't explain coordinate systems, overlap behavior, whether the source is cleared before or after the move, error conditions, or any constraints. An agent would have to guess about critical operational details, making this definition inadequate for reliable invocation.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameter meaning. However, it provides no information about how x, y, width, height, dest_x, dest_y, or other parameters define the region or destination. It merely mentions a 'rectangular region' without connecting to any parameters. This leaves the agent with no understanding of the parameter semantics beyond the schema's type definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the action: 'Move a rectangular region within a cel' and adds the key effect 'clearing its source'. This distinguishes it from copy_region (which would not clear) and set_cel_position (which moves whole cels, not regions). The verb and resource are specific, though it doesn't explicitly name alternative 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?

No guidance on when to use this tool versus alternatives like copy_region, erase_region, or set_cel_position. It doesn't mention scenarios where moving is preferred over copying, nor does it state prerequisites like needing a cel to exist. The usage context is implied by the name and description but not explicitly articulated.

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

normalize_spriteA

Crop one or more raster frames to shared alpha bounds, add deterministic padding and write pivot metadata without overwriting the source.

ParametersJSON Schema
NameRequiredDescriptionDefault
pivotNobottom_center
formatNo
paddingNo
input_filenameYes
output_filenameYes
manifest_filenameYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses non-destructive behavior ('without overwriting the source') and notes it writes output and metadata. However, it does not mention file format handling, potential failure modes, or whether multiple frames are processed from a single file or multiple files, leaving ambiguity.

Agents need to know what a tool does to the world before 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, tightly written sentence that front-loads the core action and outcomes. It avoids unnecessary words and effectively communicates the essential purpose in a compact form.

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 tool with six parameters, three required, and no output schema, the description is underspecified. It does not explain the manifest file purpose, how the input file represents multiple frames, the meaning of pivot options, or the effect of padding on the output. An agent would likely need to inspect the schema or other tools to use this correctly, making it 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?

Schema description coverage is 0%, so the description must compensate. It mentions 'shared alpha bounds', 'deterministic padding', and 'pivot metadata', giving context for the input, padding, and pivot parameters. However, it does not explain the role of manifest_filename, the format parameter, or how multiple frames are referenced, so the agent must rely on schema enums and 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?

The description states a specific action ('crop'), the resource ('raster frames'), the outcome ('shared alpha bounds, deterministic padding, pivot metadata'), and a key behavioral guarantee ('without overwriting the source'). It clearly differentiates from sibling tools like crop_canvas or generate_sprite_anchors by focusing on normalization for multiple frames.

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 the tool (when you need to normalize frames to alpha bounds and add padding), but it does not explicitly mention alternatives or exclusion criteria. It lacks guidance on when to prefer this over crop_canvas or other related tools, leaving some inference to the agent.

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

offset_cel_positionsC

Offset cel positions across a frame range.

ParametersJSON Schema
NameRequiredDescriptionDefault
dxYes
dyYes
filenameYes
end_frameYes
layer_nameYes
start_frameYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Offset' implies a mutating operation, but it does not state whether it modifies existing cel positions, whether offsets are additive, whether it affects all cels in the range, whether it is reversible, or what the result 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.

Conciseness4/5

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

The description is a single tight sentence with no filler, front-loading the verb and resource. It is concise, though arguably too sparse for a six-parameter mutating 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 mutating tool with no annotations, no output schema, six required parameters, and no sibling differentiation, the description is materially incomplete. An agent would not know the precise effect, prerequisites, or how to select this over related cel-position tools.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only loosely maps 'offset' to dx/dy and 'frame range' to start_frame/end_frame. It does not clarify units, coordinate space, the role of filename/layer_name, or how dx/dy apply to existing positions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Offset') and a clear resource ('cel positions') with an explicit scope ('across a frame range'). It is understandable on its own, but it does not differentiate itself from siblings like set_cel_position or tween_cel_positions.

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 siblings such as set_cel_position, tween_cel_positions, or propagate_cels. The scope 'across a frame range' hints at batch use, but no explicit usage context, exclusions, or alternatives are provided.

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

oscillate_cel_positionsC

Apply sine-wave position offsets to cels across frames.

ParametersJSON Schema
NameRequiredDescriptionDefault
cyclesNo
filenameYes
end_frameYes
phase_degNo
layer_nameYes
amplitude_xNo
amplitude_yNo
start_frameYes
source_frame_indexNo
create_missing_celsNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It only says offsets are applied; it does not say whether existing cel positions are mutated in place, whether missing cels can be created, whether the operation is reversible, or what frame/range semantics apply.

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 filler, so it is concise and to the point. However, it is so brief that it leaves almost all functional detail to the schema and misses an opportunity to provide scannable guidance.

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

Completeness1/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 no annotations and no output schema, a one-line description is severely inadequate. It omits return behavior, side effects, parameter relationships, frame-range handling, and any indication of what happens to existing cels.

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

Parameters2/5

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

Schema description coverage is 0%, and the description must compensate for 10 undocumented parameters. The phrase 'sine-wave position offsets' gives a useful hint for amplitude_x, amplitude_y, cycles, and phase_deg, but it leaves start_frame, end_frame, source_frame_index, and create_missing_cels unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('apply sine-wave position offsets') and resource ('cels across frames'), giving the tool a distinct identity among siblings like tween_cel_positions and offset_cel_positions. It does not explicitly contrast with those siblings, but the waveform language is enough to convey a periodic, animated motion effect.

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 is given about when to use this tool versus alternatives such as offset_cel_positions or tween_cel_positions. The description implies a use case but provides no conditions, prerequisites, or exclusions.

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

outline_nativeC

Apply Aseprite native outline to a selected layer and frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo#000000
placeNooutside
matrixNocircle
filenameYes
layer_nameNo
frame_indexNo

TDQS

C2.7/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. 'Apply' implies an in-place pixel mutation, but the description does not state that the selected layer is modified, whether the operation is destructive, or how the result relates to existing pixels. Color, placement, and matrix effects are also left undisclosed.

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 one short sentence with no filler, and the core operation is front-loaded. However, the word 'selected' is vague and could have been replaced with explicit parameter references, making it concise but slightly underspecified.

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 mutating tool with no annotations and no output schema, this description is too skeletal. It names the operation and target but omits the meaning of the effect parameters, the role of filename, any side effects, and what a successful call returns. An agent would need to open the schema and still lack key context.

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

Parameters2/5

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

Schema coverage is 0%, and the description does not explain color, place, matrix, filename, layer_name, or frame_index. The phrase 'selected layer and frame' loosely maps to layer_name and frame_index, but it never explains their roles, defaults, or value formats. With six undocumented parameters, this is insufficient compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Apply') and object ('Aseprite native outline') and narrows the target to a layer and frame, so an agent can identify the operation. The word 'native' hints at the distinction from the sibling apply_pixel_outline, though the difference is not explicit. Some ambiguity remains around what 'selected' means and which file is affected, since filename is required but not mentioned.

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 is provided about when to use this tool versus apply_pixel_outline or other outline-related tools. There are no stated prerequisites, exclusions, or recommended use cases. The agent must infer usage entirely from the tool name and sibling list.

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

plan_asset_sceneA

Plan ordered scene layers from selected asset library ids without generating files or loading full asset details.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idsYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly discloses that no files are generated and full asset details are not loaded, signaling a lightweight, non-destructive planning operation. It does not mention whether any state is mutated or what the plan output looks like, but the disclosed non-behaviors are meaningful.

Agents need to know what a tool does to the world before 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 entire description is one focused sentence that front-loads the action and target, then adds two clear scope constraints. There is no filler or redundant restating of the tool name.

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 description explains intent and non-effects well, but there is no output schema and no annotation to clarify what the returned plan contains or how it should be used downstream. With several scene-related siblings, the absence of explicit differentiation and return-value context leaves a meaningful 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 description coverage is 0%, so the description must compensate. 'Selected asset library ids' gives semantic meaning to the sole parameter item_ids and ties it directly to the planning task. It does not explain the ID format or array-ordering semantics, but the schema already constrains the item count and string requirements.

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'), a specific resource ('ordered scene layers'), and the input source ('selected asset library ids'). It also distinguishes itself from generating/composing siblings by explicitly stating it does not generate files or load full asset details.

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 planning-only context and excludes file generation, but it does not explicitly state when to use this tool versus compose_asset_scene or recommend_asset_scene. No alternatives are named, leaving the agent to infer when this is the right choice.

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

propagate_celsC

Copy selected layer cels from one source frame across a frame range.

ParametersJSON Schema
NameRequiredDescriptionDefault
replaceNo
filenameYes
end_frameYes
layer_namesYes
start_frameYes
source_frameYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior on its own. It states the core operation but omits critical details such as whether existing cels in the target range are overwritten (the 'replace' parameter is not explained), whether empty cels are copied, or any side effects. The description is a bare statement of action without 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.

Conciseness5/5

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

The description is a single, well-structured sentence with no filler. It front-loads the action and scope, and every word contributes to meaning. It is appropriately concise for a tool of this complexity.

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

Completeness1/5

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

Given 6 parameters (5 required), no output schema, and no annotations, the description is drastically under-specified. It does not explain parameter semantics, behavior on existing cels, error conditions, or the expected outcome. An agent would lack sufficient information to invoke the tool correctly without additional context.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate by explaining parameters. It only implicitly references source_frame and the frame range, but does not clarify filename, layer_names, or the replace flag. The description adds minimal semantic value beyond the schema's field names, leaving most parameters underdocumented.

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 clearly states the action (copy), the resource (selected layer cels), the source (one source frame), and the target (a frame range). It is specific and differentiates from copy_cel (which copies a single cel) and propagate_frame_to_range (which likely copies whole frames) by focusing on selected layer cels. The verb-resource-scope structure 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like copy_cel, copy_frame, or propagate_frame_to_range. There is no mention of prerequisites, conditions, or exclusions. An agent would have to infer the intended use case from the name and description alone, which is insufficient given the large sibling set.

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

propagate_frame_to_rangeC

Propagate all source-frame cels to a frame range.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
end_frameYes
overwriteNo
start_frameYes
source_frameYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'Propagate' implies mutation but the description does not disclose whether target cels are overwritten, whether the operation is reversible, or how the overwrite parameter affects behavior. The destructive implications are left entirely to inference.

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?

One short sentence with no waste, but it sits at the edge of under-specification. It communicates the core action yet adds no decision-useful detail, so brevity here comes at the cost of clarity rather than being earned by rich 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?

For a mutation tool affecting a frame range with an overwrite default, no annotations, no output schema, and no parameter descriptions, a single sentence is inadequate. An agent has no sense of side effects, prerequisites, or what the result will look like.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate for the five undocumented parameters. It mentions none of them — filename, source_frame, start_frame, end_frame, and overwrite all go unexplained, and the default of overwrite=true is never contextualized.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (propagate), a resource (source-frame cels), and a destination (frame range). The action and target are clear enough to distinguish from siblings like duplicate_frame_range, though 'propagate' could still be confused with the sibling propagate_cels.

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 alternatives mentioned, and no exclusions. Siblings like propagate_cels, duplicate_frame_range, and copy_cel overlap in intent, yet nothing tells an agent when this tool is preferred over them.

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

quantize_to_paletteC

Snap opaque pixels to the nearest color in the active palette.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
end_frameNo
layer_nameNo
start_frameNo

TDQS

C2.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does usefully disclose that only opaque pixels are affected and that colors are snapped to the active palette, implying transparent pixels remain unchanged. However, it does not state whether the operation is destructive, which layers or frames are affected, or what happens to pixels already in the palette.

Agents need to know what a tool does to the world before 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. Every word contributes to the core operation, making it highly concise and easy to parse.

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 pixel-modifying tool with no annotations, no output schema, and unexplained parameters, this description is too thin. It omits parameter semantics, usage guidance, and layer/frame scope, so an agent could easily apply the quantization to the wrong layer or frame range.

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

Parameters1/5

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

Schema description coverage is 0% and the description provides no information about filename, layer_name, start_frame, or end_frame. An agent cannot determine the meaning of defaults such as an empty layer_name or end_frame=0, so the description completely fails to compensate for the missing 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 phrase 'Snap opaque pixels to the nearest color in the active palette' names a specific operation, resource, and target color space. It is reasonably distinct from sibling tools like replace_color or remap_colors_in_cel_range, though it does not explicitly clarify the layer/frame 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?

No guidance is given about when to use this tool versus siblings such as remap_colors_in_cel_range, apply_palette_preset, or replace_color. There are no prerequisites, exclusions, or conditions stated, so usage must be inferred entirely from the name and one-line description.

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

recommend_asset_sceneC

Recommend a compact, deterministic set of compatible library assets for a scene, with explainable reasons and covered tags/effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
limitNo
promptNo
categoryNo
required_tagsNo
required_kindsNo
required_variantsNo

TDQS

C2.4/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It mentions 'deterministic' and 'explainable', but doesn't state whether the operation is read-only, what side effects it may have, or the structure of the returned recommendation. It also omits any permission or mutation hints, which is a gap for a tool with zero 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.

Conciseness3/5

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

The description is a single sentence that front-loads the core idea efficiently, but it is so brief it omits critical details. It earns credit for conciseness but lacks structure that elaborates on usage or behavior beyond the headline.

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?

Given 7 parameters, no output schema, and no annotations, the description is incomplete. It doesn't explain how parameters interact, what the 'explainable reasons' format is, or how 'covered tags/effects' are presented in the output. An agent cannot reliably infer how to construct a valid request.

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

Parameters1/5

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

Schema description coverage is 0%, meaning none of the 7 parameters have textual descriptions in the schema, and the tool description mentions none of them. The agent gets no help understanding seed, limit, prompt, category, required_tags, required_kinds, or required_variants, nor how they influence the recommendation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the tool recommends a compact, deterministic set of compatible library assets for a scene, with explainable reasons and covered tags/effects. It uses a specific verb ('recommend') and resource ('library assets'), and adds unique qualifiers like 'deterministic' and 'explainable', but it doesn't explicitly differentiate from siblings like compose_asset_scene or plan_asset_scene.

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 is given on when to use this tool versus alternatives. It doesn't mention conditions for selection, nor does it reference sibling tools such as plan_asset_scene or compose_asset_scene. The description implies it's for recommending assets but offers no exclusions or precedence rules.

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

remap_colors_in_cel_rangeB

Remap explicit RGB colors across a layer frame range while preserving alpha.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
mappingsYes
end_frameYes
layer_nameYes
start_frameYes
source_frame_indexNo
create_missing_celsNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does reveal that alpha is preserved and that the operation remaps colors, but it does not mention in-place mutation, exact matching semantics, whether missing cels are created, or any side effects. This is a meaningful but incomplete behavioral picture.

Agents need to know what a tool does to the world before 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, tightly worded sentence with no filler or redundancy. The core action is front-loaded, and every word contributes meaning, making it highly concise for the limited information it conveys.

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?

Given 7 parameters, no annotations, and no output schema, this one-sentence description is not enough for an agent to call the tool correctly. It omits the meaning of the mappings structure, frame range inclusivity, optional source_frame_index, and create_missing_cels behavior. The description gives the high-level idea but leaves critical execution details undocumented.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only loosely maps to a few parameters: 'layer frame range' hints at layer_name, start_frame, and end_frame, and 'explicit RGB colors' hints at mappings. Important parameters like source_frame_index and create_missing_cels are completely unaddressed.

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 ('Remap') with a precise resource ('explicit RGB colors across a layer frame range') and an important qualifier ('preserving alpha'). This clearly distinguishes it from sibling tools like replace_color or erase_color, which do not target range-scoped remapping.

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 explicit guidance on when to use this tool versus alternatives such as replace_color, erase_color, or other color-adjustment tools. There are no stated preconditions, exclusions, or 'use this instead of X' notes, leaving the agent to infer applicability from the tool name and brief scope.

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

rename_layerC

Rename a named layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
new_nameYes
layer_nameYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the layer is renamed, but it does not mention potential side effects, failure conditions, whether references to the old name are updated, or whether the operation requires specific permissions. This is a meaningful omission 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?

The description is a single, front-loaded sentence with no filler. It is concise, but it is also under-specified; the brevity is achieved by omitting useful behavioral and parameter context rather than by tightly packaging informative 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?

Given three required parameters, no annotations, and no output schema, the description is too thin to be complete. An agent could infer the basic operation from name and parameters, but it lacks critical details about how the layer is identified, what happens if the layer does not exist, and whether renaming affects dependent data.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not elaborate on any parameter. The parameter names 'filename', 'layer_name', and 'new_name' are fairly self-explanatory, but the description does not explicitly state which is the current name, which is the target file, or any constraints beyond the schema's minLength.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Rename') and resource ('a named layer'), so an agent understands the core operation immediately. It does not explicitly differentiate from sibling tools, but no sibling directly performs renaming, so the purpose is not ambiguous. The phrase 'named layer' is slightly redundant but not misleading.

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 guidance on when to use this tool versus any alternatives, nor does it mention prerequisites such as the layer existing or the new name being unique. The intended use is only implied by the tool's name and parameter list.

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

render_onion_skinC

Render neighboring animation frames as translucent onion-skin ghosts into a PNG.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNo
scaleNo
beforeNo
filenameYes
frame_indexYes
ghost_opacityNo
output_filenameYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It states the tool renders ghosts into a PNG, implying it produces a file, but does not disclose side effects such as whether it overwrites existing files, modifies the source animation, or requires specific permissions. The safety profile (read-only vs. destructive) is unknown, which is a significant gap for a tool that creates an output file.

Agents need to know what a tool does to the world before 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, compact sentence with no filler words. It efficiently states the action and output in 10 words. This is an example of excellent conciseness.

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

Completeness1/5

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

With 7 parameters, no output schema, and zero schema coverage, the description is severely incomplete. It does not explain the output format details, how edge frames are handled, the relationship between before/after and frame_index, or what the scale and ghost_opacity parameters do. An agent cannot confidently call this tool correctly based solely on this description.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented parameters. It mentions 'neighboring frames' and 'onion-skin ghosts' but provides no explanation for the 7 parameters (filename, frame_index, output_filename, before, after, scale, ghost_opacity). The description adds no meaning beyond the parameter names, leaving the agent to guess how to set values correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the verb 'Render' and the resource 'neighboring animation frames as translucent onion-skin ghosts into a PNG.' It conveys the core action and output. However, it does not differentiate this tool from closely related siblings like set_onion_skin or compare_frames, which also deal with frame visualization. The purpose is clear but not unique.

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 is provided on when to use this tool versus alternatives. The description does not mention when onion-skin rendering is appropriate, nor does it contrast with sibling tools such as set_onion_skin (which toggles the onion-skin overlay) or compare_frames (which compares frames). The agent is left to infer usage from the name and description.

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

reorder_layerC

Move a layer to a one-based stack position.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
positionYes
layer_nameYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether position 1 is the top or bottom of the stack, whether the operation is destructive or reversible, what happens with invalid positions, or what the return behavior is.

Agents need to know what a tool does to the world before 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 scannable sentence with no filler. It front-loads the action and includes the key indexing semantic ('one-based') without wasted words.

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 three-parameter mutation tool with no annotations, no output schema, and no parameter-level documentation, this description is too thin. It leaves out stack orientation, side effects, error handling, and return value, so an agent would have to infer critical invocation details.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should explain all three parameters. It only adds meaning to 'position' by describing it as one-based; 'filename' and 'layer_name' are not explained beyond their self-evident names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('move'), a resource ('a layer'), and a destination ('one-based stack position'), so the core operation is clear. It does not explicitly differentiate from sibling tools like set_layer or other layer operations, though the reorder intent is evident.

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 reorder_layer versus any alternative, nor any context about prerequisites or ordering conventions. The description only implies that the caller wants to move a layer, which is insufficient among dozens of layer-related sibling tools.

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

replace_colorB

Replace a cel color while preserving alpha and allowing channel tolerance.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
to_colorYes
toleranceNo
from_colorYes
layer_nameYes
frame_indexYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does add two useful behavioral details: alpha is preserved and tolerance applies per channel. However, it omits obvious mutation consequences, whether the replacement is in-place, what happens with no matching pixels, or what the return value indicates.

Agents need to know what a tool does to the world before 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 concise, front-loaded sentence with no filler. It immediately names the operation and then adds the two most important behavioral qualifiers, making it easy for an agent to scan and retain.

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 mutating tool with six parameters, no annotations, and no output schema, this description is too sparse. It leaves the agent without information about effect scope, required context, failure behavior, return values, or how the tolerance setting changes matching behavior beyond the word 'tolerance'.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It weakly implies the roles of from_color and to_color and hints at tolerance, but it does not explain filename, layer_name, frame_index, color formats, or the meaning/range of tolerance despite six parameters needing clarification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Replace a cel color', plus the key constraints 'preserving alpha' and 'allowing channel tolerance'. It is clear enough to distinguish from broader palette-level tools like set_palette or remap_colors_in_cel_range, though it does not explicitly name 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 guidance is given about when to use this tool versus sibling tools such as erase_color, remap_colors_in_cel_range, or set_palette. The description implies a use case but provides no exclusions, prerequisites, or alternative routing.

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

resize_canvasC

Resize the sprite canvas and its content.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
heightYes
filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

The phrase 'and its content' is a genuinely useful disclosure — the content resizes rather than being cropped or left anchored. But with zero annotations the description carries the full behavioral burden and omits critical traits: whether shrinking is destructive, whether all layers/frames are affected, and whether width and height changes stretch content non-uniformly.

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 core action, resource, and scope appear immediately. It is appropriately lean, though the terseness itself contributes to the completeness gaps 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?

For a mutating tool with no annotations, no output schema, and 70+ siblings, this is incomplete. Missing are units, filename semantics, destructiveness of shrinking, scope across frames/layers, and any differentiation from crop_canvas — an agent could mis-invoke this on units or confuse it with a crop operation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate; it does not. It neither confirms units for width/height (presumably pixels) nor clarifies what filename identifies (a filesystem path vs. a resource identifier), leaving all three required parameters semantically thin despite their self-evident names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Resize'), a precise resource ('sprite canvas'), and the scope of that action ('and its content') — this is a clear verb+resource pairing. It does not, however, differentiate from the sibling crop_canvas, which also alters canvas boundaries, so the purpose is clear but sibling distinction is absent.

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 prefer this tool over crop_canvas, create_canvas, or other canvas-affecting siblings. No context, exclusions, or alternatives are mentioned; the agent must infer applicability solely 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.

rotate_layerB

Rotate a layer cel 90, 180, or 270 degrees clockwise.

ParametersJSON Schema
NameRequiredDescriptionDefault
angleNo
filenameYes
layer_nameYes
frame_indexYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the rotation action but does not mention whether the operation modifies the cel in place, is reversible, requires specific permissions, or returns any value. For a mutation tool, this is a significant 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?

The description is a single, efficient sentence that front-loads the core action and allowed angles with zero waste. It is appropriately sized for the tool's simplicity.

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?

Given the tool has 4 parameters, no annotations, and no output schema, the description is incomplete. It does not explain what happens to the cel (e.g., in-place mutation), how 'frame_index' relates to the cel, or any side effects. An agent would need to infer too much to call it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains the 'angle' parameter implicitly by listing allowed values, but does not clarify 'filename', 'layer_name', or 'frame_index' beyond their obvious names. The description adds minimal value over 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 ('rotate'), resource ('layer cel'), and allowed angles (90, 180, 270 degrees clockwise). It clearly distinguishes from sibling 'flip_layer' and other transform 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 usage for rotating a layer cel but does not explicitly state when to use it versus alternatives like 'flip_layer' or other geometry tools. It provides no exclusions or prerequisites, but the context is clear enough for a simple operation.

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

run_asset_quality_gateC

Run compact pixel-art quality checks before export.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
max_colorsNo
min_contrastNo
max_banding_runsNo
max_isolated_pixelsNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behaviors, but it only states the bare action. It doesn't mention whether the tool is read-only, what happens when checks fail, whether it blocks export, or what output format 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.

Conciseness3/5

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

The single sentence is admirably short and front-loaded with the action. Yet it is under-specified rather than genuinely concise, omitting details that the tool needs to be invoked correctly.

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?

Given five parameters, no annotations, no output schema, and a large sibling list of quality/export tools, the description is far from complete. It offers only the 'before export' clue and lacks pass/fail semantics, return values, and workflow integration details.

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

Parameters1/5

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

Schema description coverage is 0% and the description mentions none of the five parameters (filename, max_colors, min_contrast, max_banding_runs, max_isolated_pixels). The description adds zero meaning beyond the raw schema, so an agent cannot infer what 'quality checks' actually assess.

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 identifies the action ('run quality checks') and timing ('before export'), which is a clear verb+resource. However, 'compact' and 'gate' are undefined, and it doesn't distinguish itself from quality-related siblings like inspect_animation_quality, validate_scene, or audit_asset_manifest.

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 'before export' provides a clear timing context for when to invoke the tool. But it gives no alternatives, no exclusion criteria, and no guidance on when to prefer this tool over other quality-check tools 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.

run_asset_recipeC

Run one compact asset recipe or return its dry-run plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
recipeYes
dry_runNo
max_colorsNo
input_filenamesYes
output_filenameNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose that a dry-run plan is a possible result, but it never states the side effects of actually running a recipe, whether running is destructive, or what happens to output 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?

The description is a single front-loaded sentence with no wasted words. It clearly communicates the core action and the dry-run alternative in minimal space.

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 7 parameters, no annotations, no output schema, and a large sibling set, this one-line description is too sparse. An agent cannot confidently determine parameter semantics, return values, or behavioral side effects before invoking the tool.

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

Parameters2/5

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

Schema coverage is 0%, so the description should compensate by explaining parameters. It only hints at 'recipe' and 'dry_run'; width, height, max_colors, input_filenames, and output_filename remain unexplained beyond their names and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Run one compact asset recipe' and adds the alternative dry-run behavior. It is intelligible on its own, but it does not differentiate the tool from the closely named sibling execute_asset_recipe.

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 execute_asset_recipe, create_asset_recipe, or create_asset_preset. It does not state when a dry run should be chosen over an actual run.

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

run_lua_scriptB

Run a bounded, trusted Aseprite Lua script as an escape hatch; dedicated tools are preferred.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYes
filenameNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full transparency burden. It adds useful safety framing with 'bounded, trusted' and signals its role as an escape hatch, but it does not disclose side effects, execution limits, return behavior, or error handling for an arbitrary Lua script.

Agents need to know what a tool does to the world before 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 sentence with no wasted words. The safety framing, tool role, and usage preference are all communicated efficiently and front-loaded.

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 powerful escape-hatch tool with no annotations and no output schema, the description leaves out important invocation details: what the script can affect, what the tool returns, what 'bounded' means in practice, and how 'filename' behaves. More guardrails are needed 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.

Parameters2/5

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

The description adds some context by clarifying that the script targets Aseprite's Lua API, giving slight semantic weight to the 'script' parameter. However, it provides no explanation of the 'filename' parameter and does not compensate for the 0% schema description 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 ('Run') and resource ('bounded, trusted Aseprite Lua script') and frames the tool as an escape hatch. It is clear what the tool does, though it does not name a specific sibling tool to differentiate from beyond the general 'dedicated tools' category.

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?

'Escape hatch' plus 'dedicated tools are preferred' gives clear context that this tool should be used as a fallback after considering specialized tools. It does not list explicit when-not conditions or name 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.

server_capabilitiesServer capabilitiesA

List the typed TypeScript MCP capabilities available to the current server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of conveying behavior. 'List' implies a read-only operation that returns capability information, but it does not state whether the result is a list of names, definition objects, or something else. It adds minimal behavioral context beyond the verb 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?

The description is a single, focused sentence with no filler. It front-loads the action and clearly identifies what is being listed.

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-parameter listing tool, the description is largely complete. It could be improved by clarifying what 'typed TypeScript MCP capabilities' means and how this differs from tool listing tools, but the current wording covers the essential scope.

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?

The tool has zero parametersainer, so there is no schema coverage gap for the description to compensate for. The baseline for zero-parameter tools is 4, and no further parameter explanation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('List') and resource ('typed TypeScript MCP capabilities available to the current server'). It is clear about what the tool does, though it does not explicitly differentiate it from sibling tools like get_tools_list or get_tools_search.

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 is provided on when to use this tool versus alternatives. There is no mention of exclusions, prerequisites, or relationship to the get_tools_* siblings, leaving an agent to infer its appropriate use.

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

set_cel_opacityB

Set one cel opacity from 0 to 255.

ParametersJSON Schema
NameRequiredDescriptionDefault
opacityYes
filenameYes
layer_nameYes
frame_indexYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Set' implies mutation, but the description does not explain persistence, idempotency, validation failures, or whether the operation modifies the current document state in any noteworthy way. The 0–255 range merely duplicates what the input schema already states.

Agents need to know what a tool does to the world before 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 short sentence with no filler or wasted words. The action is front-loaded and the only stated constraint is the opacity range, which is immediately relevant to callers.

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 4-parameter mutation tool with no annotations and no output schema, this description is too thin. It omits parameter meanings, alternative routing, and behavioral caveats, leaving an agent to infer how the cel is located and what happens when the operation is applied.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate for all four parameters. It only addresses the opacity range, which is already encoded in the schema, and provides no meaning for filename, layer_name, or frame_index, nor how they jointly identify the target cel.

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 an explicit verb 'Set' and a specific resource 'one cel opacity', with a numeric range. This distinguishes it from siblings like set_layer_opacity (targets a layer, not a cel) and tween_cel_opacity_eased (animates opacity over time rather than setting a single value).

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 rather than an alternative. It does not mention that set_layer_opacity would affect an entire layer, that tween_cel_opacity_eased would animate opacity across frames, or any prerequisites for targeting a valid cel.

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

set_cel_positionC

Set one cel position, optionally creating it from a source cel.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
filenameYes
layer_nameYes
frame_indexYes
create_if_missingNo
source_frame_indexNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing side effects, but it only says a position is set and a cel may be created from a source cel. It does not state whether existing x/y values are overwritten, what happens for missing layers or frames, what coordinate system is used, or what the source cel contributes. The optional creation behavior is useful, but significant behavioral context is missing.

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 sentence with no filler, and the primary action is front-loaded. It is appropriately compact, though that compactness comes at the cost of detail that is not supplied anywhere else.

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 mutating tool with seven parameters, no annotations, and no output schema, one sentence is far from complete. Missing information includes when creation is triggered, error behavior for invalid targets, and how this differs from other position-related tools. The description hints at the key optional path but does not make the tool safely invocable by an agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only adds the insight that a source cel may be used when creating the cel, loosely mapping to create_if_missing and source_frame_index. It does not explain x/y semantics, frame_index bounds, or how the source cel's position or pixels are used. This partial compensation is not enough for 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?

The description names a specific action ('Set') and resource ('one cel position'), which distinguishes it from position-related siblings like tween_cel_positions and offset_cel_positions. It also surfaces the optional creation behavior. However, it does not explicitly name any sibling tool or contrast itself with 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 guidance on when to use this tool instead of alternatives such as offset_cel_positions, tween_cel_positions, copy_cel, or create_cel. No preconditions are described, such as whether the layer must exist or how create_if_missing relates to source_frame_index. The implied use case is the only signal.

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

set_color_modeC

Convert a sprite to RGB, grayscale, or indexed color mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
filenameYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations present, the description must carry safety and side-effect information, but it only says 'Convert'. It does not disclose whether the conversion overwrites the source sprite, creates a new file, or is lossy (especially indexed), and gives no indication of reversibility or palette implications. This is a meaningful gap for a mutating operation.

Agents need to know what a tool does to the world before 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, no filler; the most important information (action, target, mode values) is front-loaded. It is as concise as a definition can be while still conveying the core 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?

For a 2-required-parameter mutating tool with no annotations and no output schema, this is incomplete: it omits whether the conversion is in-place, how indexed colors are chosen, and what the caller should expect after invocation. The enum covers mode choices but not the behavioral context needed for safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 description restates the mode choices from the schema enum and indicates that filename refers to a sprite, but it does not clarify filename path/format or what happens to the original. Since schema property descriptions cover 0% of parameters, the description only partially compensates; the property names and enum provide most of the remaining 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 names a concrete verb ('Convert'), a resource ('a sprite'), and the exact mode choices (RGB, grayscale, indexed), so an agent knows what the tool does at a glance. It does not explicitly differentiate it from color-related siblings like quantize_to_palette or convert_image_to_pixel_art, but the enum and mode list make the intent distinguishable.

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 tool over related siblings such as quantize_to_palette, convert_image_to_pixel_art, or remap_colors_in_cel_range. The description neither states typical use cases nor excludes alternatives, leaving the agent to guess based on tool name alone.

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

set_frameB

Set the active animation frame by one-based index.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
frame_indexYes

TDQS

B3.2/5.0
Behavior3/5

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

The description implies a mutation (setting something), which is accurate given the tool name. However, with no annotations provided, the description carries the full burden. It doesn't disclose side effects (e.g., whether previous frame state is lost, whether undo is possible) or any permissions needed. But the one-based index note is a small behavioral cue.

Agents need to know what a tool does to the world before 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 is clear and front-loads the core action. No fluff.

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 operates on an animation frame, but the description doesn't mention what 'filename' points to, whether the sprite must already be loaded, or how the active frame relates to layers/cels. Given the large sibling set with related tools (like add_frame, delete_frame), a brief context note would improve 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 coverage is 0%, so the description must explain the parameters. It explains frame_index as one-based, which adds crucial semantic meaning beyond the schema (which only says integer >0). However, it doesn't explain what 'filename' refers to (the animation file? sprite? ) and how to obtain it. So partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('set') and a specific resource ('active animation frame') with a parameter ('by one-based index'). It distinguishes from sibling tools like add_frame/set_frame_duration because it specifically targets the active frame, not adding or timing frames.

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 says to set the active frame, but doesn't explain when to use it compared to alternatives like add_frame or duplicate_frame_range. There's no mention of prerequisites like an open sprite or animation context, and no guidance on when to avoid it.

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

set_frame_durationB

Set one animation frame duration in milliseconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
duration_msYes
frame_indexYes

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It only says 'set' a duration; it does not disclose whether the frame must already exist, whether the change overwrites existing timing, what validation or errors occur, or how the operation affects the overall animation. No safety or mutation behavior is conveyed beyond the verb 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?

The description is a single sentence with no padding, and every word earns its place. It is front-loaded with the action and resource, and 'in milliseconds' adds necessary unit specificity without redundancy.

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 three required parameters, no annotations, and no output schema, so the description needs to provide substantial context. It omits prerequisites, failure behavior, and the effect of the change on the animation. The description is too thin to safely invoke without relying on external assumptions.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for missing parameter meaning. It adds useful context for duration_ms ('milliseconds') and hints at frame_index via 'one animation frame', but it never explains filename, indexing semantics, or frame existence requirements. This is insufficient for three required parameters with no schema 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?

The description uses a specific verb ('set'), names the resource ('animation frame duration'), and specifies the unit (milliseconds). The word 'one' distinguishes it from the sibling set_frame_duration_all, so an agent can identify what this 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 Guidelines3/5

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

No explicit when-to-use or alternative guidance is provided. The phrase 'one animation frame' implies single-frame use and contrasts with set_frame_duration_all, but the tool does not state when to choose it over alternatives or mention prerequisites. Usage is implied rather than directly instructed.

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

set_frame_duration_allC

Set all animation frame durations in milliseconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
duration_msYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full behavioral burden. It only says 'Set' which implies mutation, but does not disclose whether existing durations are overwritten, whether this is reversible, or what happens to the animation's timeline. No mention of side effects 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.

Conciseness2/5

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

The description is a single sentence with no wasted words, but it is under-specified. It lacks structure such as examples, parameter explanations, or conditional notes. It is more of a brief label than a complete tool description.

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 tool with two parameters and no annotations or output schema, the description is too sparse. It does not clarify scope (e.g., which animation or sprite), what 'all' means precisely, or any operational context. It leaves key details ambiguous, making it insufficient for confident invocation.

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

Parameters1/5

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

Schema description coverage is 0% and the description provides no explanation of the parameters. It mentions 'milliseconds' but does not explicitly map that to the duration_ms parameter or describe the filename parameter. An agent would have to rely solely on parameter names, which are somewhat self-explanatory but not reinforced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action ('Set') and resource ('all animation frame durations') with units specified. It is specific enough to convey that this tool affects every frame in an animation, though it does not explicitly contrast with the sibling set_frame_duration, leaving the distinction to the word 'all'.

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 alternatives. The sibling set_frame_duration exists, but the description does not mention it or explain that this tool is for batch-setting all frames. No context on prerequisites or intended use cases.

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

set_layerC

Set the active layer by name, optionally creating it.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
layer_nameYes
create_if_missingNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavior. It only mentions the core action and optional creation, but does not state what happens when create_if_missing is false and the layer doesn't exist, whether the previous active layer is changed or preserved, or any other side effects. This is too thin for a state-changing 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 sentence with no filler. It front-loads the core verb and resource, then adds the key qualifying behavior. Every word contributes to the meaning, so it earns full marks for 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?

With 3 parameters, no annotations, and no output schema, the description must provide a complete mental model. It explains the overall function but leaves critical gaps: the role of filename, failure behavior, and what 'active layer' means in practice. An agent would not be able to call this tool confidently on a failure-path or edge case.

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

Parameters2/5

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

The schema has zero description coverage for any parameter. The description adds meaning for layer_name ('by name') and create_if_missing ('optionally creating'), but completely omits filename, and doesn't clarify valid names or the exact semantics of the create flag beyond that. It only partially compensates for the missing schema 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 ('set') and resource ('active layer'), with an optional creation qualifier. It is distinct from property-manipulation siblings like set_layer_visibility or set_layer_blend_mode, but it doesn't explicitly differentiate from add_layer, which also creates layers, so it falls just short of fully distinguishing itself.

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 add_layer or ensure_layers_present. The phrase 'optionally creating it' implies a use case (set active while maybe creating), but no exclusions, prerequisites, or alternative tool references are provided, leaving the agent without clear routing.

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

set_layer_blend_modeC

Set a layer blend mode supported by Aseprite.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
filenameYes
layer_nameYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states the action itself. It does not mention whether unsupported modes are rejected, whether previous blend mode states are overwritten, or what happens if the layer is not found. The phrase 'supported by Aseprite' hints at validation but does not explain side effects or 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.

Conciseness5/5

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

The description is a single focused sentence with no filler or repetition. It front-loads the core action and resource immediately, which is appropriate for such a small 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 tool with three required parameters, no output schema, and no annotations, this description is too sparse to fully support correct invocation. An agent cannot determine valid mode strings, parameter behavior, or expected outcomes. It is minimally viable at best but leaves significant gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must clarify the three required parameters. It confirms that 'mode' refers to an Aseprite-supported blend mode, which adds some meaning, but it does not explain the accepted mode values or the roles of 'filename' and 'layer_name'. The parameter names are suggestive but not sufficient on their 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?

The description uses a specific verb ('Set') and resource ('layer blend mode'), making the operation clear. It is distinguishable from sibling tools like set_layer, set_layer_visibility, and set_layer_opacity because it targets blend mode specifically. However, it does not expand on what blend modes are available, so it stops short of full clarity.

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 guidance on when to use this tool versus alternatives such as set_layer or set_layer_opacity. It also does not state prerequisites like requiring the sprite file to be loaded or the layer to exist. There is no context about exclusions or preferred scenarios.

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

set_layer_opacityB

Set a named layer opacity from 0 to 255.

ParametersJSON Schema
NameRequiredDescriptionDefault
opacityYes
filenameYes
layer_nameYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the opacity range already present in the schema and does not mention side effects, persistence, error behavior, or what happens when the layer does not exist.

Agents need to know what a tool does to the world before 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, compact sentence with no filler. The core action, target, and constraint are all front-loaded, making it easy to read and parse.

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 all required parameters are covered by the schema, so this is minimally viable. However, with no annotations, no output schema, and no behavioral context, the description leaves gaps around expected side effects and failure modes.

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

Parameters2/5

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

Schema description coverage is 0%, but the description adds little beyond the schema: it repeats the opacity range and leaves filename and layer_name to be inferred from their names. The description does not compensate for the missing parameter documentation.

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: 'Set a named layer opacity', and it states the valid range (0 to 255). It is clearly distinguishable from sibling tools like set_layer_visibility, set_layer_blend_mode, and set_cel_opacity because it names 'layer' and 'opacity' 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 guidance on when to use this tool versus alternatives such as set_cel_opacity or set_layer_visibility. No when/when-not scenarios, prerequisites, or exclusions are provided, leaving the agent to infer the appropriate 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.

set_layer_visibilityC

Set a named layer visibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
visibleNo
filenameYes
layer_nameYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only restates the mutation without explaining effects, reversibility, return values, or the meaning of the visible default. The description does not contradict anything, but it adds no behavioral context beyond the tool 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?

A single, front-loaded sentence with no filler. Every word carries meaning, and the verb-object structure is immediately scannable.

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 three-parameter mutating tool with no annotations and no output schema, this one-line description leaves too much unstated. An agent knows the action but not the full invocation context, parameter details, or behavioral consequences.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate for the undocumented parameters. It only loosely maps 'named layer' to layer_name and 'visibility' to visible, while omitting filename and the semantics or default behavior of the visible 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 clear action and resource: it sets a named layer's visibility. It is not vague, but it does not explicitly differentiate this tool from siblings like set_layer_opacity or set_layer_blend_mode, so it misses the highest bar for clarity.

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 is provided about when to use this tool versus alternatives. There is no mention of when to prefer this over set_layer, set_layer_opacity, or other layer-related siblings, so an 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.

set_onion_skinC

Validate onion-skin settings for batch workflows; Aseprite UI-only settings are reported explicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNo
beforeNo
enabledNo
opacityNo
filenameYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden of behavioral disclosure. It does reveal one useful behavior—Aseprite UI-only settings are 'reported explicitly'—but it does not clarify whether the operation mutates state, what happens to invalid settings, whether filename refers to a document or project file, or what the return/report 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.

Conciseness4/5

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

The description is a single efficient sentence with the main action front-loaded and no filler. The semicolon clause adds important context about UI-only settings, though it could be clearer with a more explicit subject-verb structure.

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 tool with five parameters, no output schema, no annotations, and 0% schema coverage, the description is too thin to be fully actionable. It gives a high-level purpose but fails to clarify parameter behavior, expected outputs, side effects, or failure modes, which an agent needs to call this tool reliably.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate by explaining parameter meaning, but it does not mention before, after, enabled, opacity, or filename at all. The phrase 'onion-skin settings' loosely contextualizes the parameters, but the agent is left to infer semantics from bare property names and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 function: validating onion-skin settings in batch workflows, and adds a distinctive reporting behavior for Aseprite UI-only settings. It distinguishes the tool from related siblings like render_onion_skin and compare_frames, though the verb 'validate' sits slightly at odds with the tool name 'set_onion_skin', leaving mild ambiguity about whether it actually applies settings or only checks 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 gives a clear usage context ('for batch workflows') and implies the tool should be used when you need UI-only settings surfaced rather than silently dropped. However, it never explicitly states when to choose this tool over alternatives or when not to use it, leaving the routing decision to the agent.

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

set_paletteC

Apply a controlled hexadecimal palette to a document.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorsYes
filenameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description must disclose side effects, but it only says 'Apply'. It does not state whether the existing palette is replaced, whether pixels are remapped, whether the document must already have a palette, or what constraints apply to the color count. Some mutation is implied, but the operational behavior is mostly opaque.

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 filler. It is appropriately concise for a simple two-parameter tool, though the brevity comes at the cost of missing usage and behavioral details.

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 mutating tool with no annotations, no output schema, and a large family of palette-related siblings, this description is not complete enough. An agent cannot tell what the tool actually does to the document's colors, whether there are prerequisites, or how it differs from apply_palette_preset / quantize_to_palette.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it adds no meaning beyond 'hexadecimal palette'. The filename parameter is never mentioned, and colors are only loosely tied to 'palette'. The schema's regex does the real work, leaving the description to add little value for 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 states a specific action ('Apply') with a resource ('hexadecimal palette') and target ('document'). The phrase 'controlled hexadecimal' hints that this tool takes raw hex colors rather than presets, which helps separate it from siblings like apply_palette_preset, though it does not explicitly name 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?

There is no guidance on when to use this tool versus the many palette-related siblings (get_palette, extract_palette, apply_palette_preset, quantize_to_palette). The only implicit signal is 'controlled hexadecimal palette', but no conditions, exclusions, or alternatives are stated.

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

set_slice_centerC

Set a slice 9-patch center rectangle.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
nameYes
widthYes
heightYes
filenameYes

TDQS

C2.1/5.0
Behavior1/5

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

With no annotations provided, the description must disclose behavioral traits. It only says 'Set', implying mutation, but gives no details about whether it overwrites existing settings, requires the slice to already exist, or has side effects. The description is insufficient for an agent to understand the operation's impact.

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

Conciseness2/5

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

The description is a single short sentence, which is concise but severely under-specified. It provides no structure or additional context, making it insufficient for a tool with 6 required parameters. This is under-specification rather than effective conciseness.

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

Completeness1/5

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

Given the lack of annotations, no output schema, and a complex set of 6 parameters with no descriptions, the tool description is completely inadequate. An agent would have no way to correctly call this tool without external knowledge about 9-patch slicing conventions and parameter semantics.

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

Parameters1/5

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

The input schema has 6 parameters with 0% description coverage, and the tool description does not explain any of them. While names like x, y, width, height suggest coordinates and dimensions, there is no mention of units, coordinate system (relative to slice or sprite), or how they define the center rectangle. The description fails to compensate for the schema's lack of explanations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Set a slice 9-patch center rectangle.' clearly identifies the verb (set) and the resource (slice 9-patch center rectangle), distinguishing it from siblings like set_slice_pivot or create_slice. However, it doesn't explicitly mention that it operates on an existing slice within a specific file, leaving some ambiguity about the resource 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?

The description provides no guidance on when to use this tool versus alternatives such as set_slice_pivot or create_slice. It doesn't state prerequisites (e.g., slice must exist), nor does it mention any exclusions or alternative conditions. Usage context is only implied by the phrase '9-patch center rectangle'.

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

set_slice_pivotC

Set a slice pivot point.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
nameYes
filenameYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It only conveys that a property is being written; it does not explain coordinate frame, persistence, errors for missing slices, or effects on rendering.

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 a single clear sentence with no filler words. However, it is so sparse that brevity comes at the cost of omitting necessary 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?

For a mutating tool with no annotations and no output schema, this description omits prerequisites, coordinate semantics, and the distinction from set_slice_center. An agent cannot safely call it without guessing.

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

Parameters2/5

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

The input schema has four required parameters with 0% schema description coverage, and the description never explicitly mentions x, y, name, or filename. The phrase 'pivot point' hints that x and y are coordinates, but coordinate space, units, and how name/filename select the slice are left unspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 slice's 'pivot point'. It is clear and understandable, though it does not differentiate itself from the related sibling tool set_slice_center.

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 is given about when this tool should be used versus alternatives like set_slice_center or create_slice. It also does not mention that the slice must already exist or how filename/name identify the target.

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

set_tagC

Create or update an animation tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
filenameYes
to_frameYes
directionNoforward
from_frameYes

TDQS

C2.5/5.0
Behavior2/5

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

Since no annotations are provided, the description must carry the behavioral disclosure. It says 'create or update' but does not explain the behavior when updating (e.g., does it replace existing tags, merge, or fail if no tag exists?). No mention of side effects, prerequisites, or return values, which is insufficient 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.

Conciseness2/5

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

The description is only one sentence, but it is under-specified rather than concise. It omits essential context, so brevity here is not a virtue; it fails to convey enough information. A concise description would still include necessary guidance.

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 tool with five parameters, no output schema, and no annotations, the description is inadequate. It does not explain what an animation tag is, how the parameters interact, or what the expected result is. The tool's complexity is not matched by the description, which would leave the agent without enough information to call it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not elaborate on what the parameters (name, filename, from_frame, to_frame, direction) represent or how they relate to the tag. The description adds no meaning beyond the schema's raw field names, leaving the agent without semantic guidance for these five 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 identifies a specific action ('Create or update') on a specific resource ('an animation tag'), which is clear enough to understand the core function. However, it does not distinguish it from sibling tools like delete_tag or export_tag, though those are clearly different operations, so it does not fully differentiate among siblings.

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 regarding creating versus updating, nor any mention of alternatives or exclusions. The description simply states the action without context, leaving the agent to infer usage from the name and parameters.

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

set_tilesC

Place tile indices on a tilemap frame by grid coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
tilesYes
filenameYes
layer_nameYes
frame_indexYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden, but it only names the action. It does not disclose whether existing tiles are overwritten, whether the file is modified in-place, what happens with invalid coordinates, or whether the layer must already be a tilemap layer.

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 one concise, active sentence with no filler and the main action front-loaded. It is structurally efficient, though slightly too terse to fully cover the complexity of the four required parameters.

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 tool with four required parameters, nested tile objects, no annotations, and no output schema, one sentence is insufficient. Critical context around layer semantics, frame targeting, overwrite behavior, and tilemap preconditions is missing, especially given the large set of sibling drawing and tilemap tools.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It connects 'grid coordinates' to col/row and 'tile indices' to tile_index, but it does not explain filename, layer_name, or how tiles relate to the selected frame. This leaves required parameters semantically under-explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Place tile indices') and a specific target ('on a tilemap frame by grid coordinates'), which maps well to the col/row and tile_index parameters. It is clear and operational, though it does not explicitly contrast itself with sibling tile-editing tools like draw_on_tile.

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 about when to use set_tiles instead of similar tools, nor any mention of preconditions such as the tilemap layer needing to exist or frame_index needing to be valid. The agent must infer usage from the schema alone.

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

start_asset_jobB

Start a compact asynchronous batch asset job and return its job id.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobsYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden, and it does explicitly disclose that execution is asynchronous and that the return value is a job id. However, it does not describe side effects, job lifecycle, failure modes, or whether results are subsequently fetched via get_asset_job_status, leaving a significant portion of behavior undisclosed.

Agents need to know what a tool does to the world before 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 sentence that front-loads the action, the async nature, and the return value with no filler or repetition. The qualifier 'compact' is vague but not wasteful, and there is no structural bloat.

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 job-submission tool with no annotations and no output schema, the description is too thin: it omits how to monitor or cancel the job, what distinguishes this from sibling batch tools, and what 'compact' implies about job structure or limits. The schema provides parameter structure, but the description does not supply the surrounding workflow context an agent needs to select and use the tool confidently.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no parameter-level meaning beyond the word 'batch', which hints at the array-shaped jobs parameter. It does not explain that each job item needs a recipe and input_filenames, or what the recipe enum values produce, so the description fails to compensate for the schema's lack of docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Start'), a resource ('batch asset job'), and names the key result (job id). It is clear about what the tool does, though it does not contrast with similarly named siblings such as batch_asset_job or run_asset_recipe, and the qualifier 'compact' 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?

There is no guidance on when to choose this tool over batch_asset_job, run_asset_recipe, or synchronous recipe execution, and no mention of prerequisites or how to combine it with get_asset_job_status/cancel_asset_job. The only implied context is 'asynchronous', but no when/when-not boundaries are stated.

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

start_preview_serverC

Serve a validated local directory over HTTP for visual asset preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNo
directoryYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must carry behavioral disclosure, but it fails to mention that this starts a long-running HTTP server, whether it blocks, how to stop it, or what side effects occur. 'Validated' hints at an internal validation step but does not explain behavior or errors.

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 tight sentence with no filler, naming the core action, resource, and purpose. It could be slightly more structured by front-loading the server-starting behavior, but it is concise and readable.

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 tool that launches a server, the description omits crucial context: whether the server runs asynchronously, how to stop it, what the response contains, and what happens if the directory is invalid or the port is occupied. Without an output schema or annotations, this is under-specified for safe autonomous use.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate. It only clarifies 'directory' implicitly as the local directory to serve, but says nothing about the 'port' parameter, its default, range, or effect. The parameter names are somewhat self-explanatory, but the description adds minimal semantic 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?

The description clearly states the action ('Serve'), the resource ('a validated local directory'), and the purpose ('for visual asset preview'). It conveys what the tool does, though it does not explicitly contrast with sibling tools like stop_preview_server or server_capabilities.

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 is provided on when to use this tool versus alternatives. It does not mention its counterpart stop_preview_server, nor does it explain prerequisites like directory validation, port availability, or when to prefer other server-related tools.

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

stop_preview_serverA

Stop a preview server started by this MCP process.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states the core action and the scope ('started by this MCP process'), which is useful, but it does not mention side effects (e.g., terminating a process), error behavior if the port is not running, or whether the operation is idempotent. Basic but adequate for a simple stop operation.

Agents need to know what a tool does to the world before 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 filler words. It states subject, verb, and object efficiently, and every word earns its place. There is no redundancy or 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?

For a simple tool with one optional parameter and no output schema, the description covers the core purpose and scope. It does not explain that the port is optional or that its default is 8000, but the schema provides that information. The missing elements (e.g., parameter usage) are minor for this tool's simplicity.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not mention the 'port' parameter at all. The schema provides type, default, and range constraints, but the description adds no semantic meaning about which port to stop or how to determine it. The agent must infer the parameter's role from its name alone.

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 ('Stop') and a clearly scoped resource ('preview server started by this MCP process'). This immediately distinguishes it from the sibling tool start_preview_server and any other server-related tools, making the tool's function 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?

The description implies when to use this tool (to stop a preview server that was started by this process) but does not explicitly state the context, prerequisites, or alternatives. It names a scoping constraint ('started by this MCP process') but does not compare it to any sibling tools or say 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.

suggest_enhancement_planA

Inspect one image and return a deterministic, non-destructive enhancement plan for an agent or human review.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
goalsNo
filenameYes
max_colorsNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does disclose the key behavioral traits: deterministic and non-destructive. It also scopes the operation to a single image, implying a read-only planning step. It does not describe the plan's structure, but that is more a completeness gap than a behavioral one.

Agents need to know what a tool does to the world before 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 sentence that front-loads the action, scopes the input, and notes the two most important behavioral traits. There is no filler or repetition of schema 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?

With no annotations and no output schema, this one-sentence description leaves the returned enhancement plan undefined and gives no guidance on how goals, max_colors, or seed affect the result. It is enough for an agent to make a rough call, but not enough to choose parameter values confidently or validate the output.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to explain seed, goals, filename, and max_colors. It only weakly hints at filename via 'one image' and at seed via 'deterministic'; goals and max_colors are left entirely to the reader. The names and enum values in the schema help, but the description adds no real parameter guidance.

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: 'Inspect one image and return... an enhancement plan.' The phrases 'non-destructive' and 'for review' clearly separate it from sibling tools like apply_enhancement_plan and apply_enhancement_batch, so an agent can tell planning from application.

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 a clear use context: generate a reviewable plan rather than apply changes. It does not explicitly name alternatives or exclusions, but 'for an agent or human review' plus sibling names such as apply_enhancement_plan make the intended workflow reasonably clear.

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

summarize_asset_libraryA

Return compact category and preset navigation metadata for the asset library with minimal tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral disclosure burden. It states that the tool returns compact navigation metadata and emphasizes token efficiency, which covers the core read-oriented behavior. However, it does not describe the return shape or specify that the tool has no side effects, though 'Return' implies a read-only operation.

Agents need to know what a tool does to the world before 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, tightly worded sentence that front-loads the primary action ('Return compact...') and packs relevant qualifiers without waste. Every word 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 no-argument retrieval tool, the description is largely complete: an agent knows what the tool does and what kind of output to expect. The absence of an output schema makes the return value slightly underspecified, but 'category and preset navigation metadata' is sufficient for a low-risk, zero-parameter 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?

The tool has zero parameters and the input schema is an empty object, so the baseline is 4. There are no parameter semantics to document, and the description appropriately focuses on the output rather than inputs.

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 ('Return'), a clear resource ('asset library'), and precise qualifiers ('compact category and preset navigation metadata', 'minimal tokens'). These qualifiers differentiate it from sibling tools like get_asset_library, which would return fuller library content, and get_asset_library_item, which targets a single item.

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 conveys a clear usage context: call this when you want a token-efficient, high-level navigation overview of categories and presets. It does not explicitly name alternatives or state when not to use it, but the 'compact' and 'minimal tokens' framing gives enough contextual signal for an agent to choose it over more detailed siblings.

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

tween_cel_opacity_easedC

Tween cel opacity from 0 to 255 across frames with easing.

ParametersJSON Schema
NameRequiredDescriptionDefault
easingNosmoothstep
filenameYes
end_frameYes
layer_nameYes
end_opacityYes
start_frameYes
start_opacityYes
source_frame_indexNo
create_missing_celsNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states that a tween is performed with easing, but does not disclose whether existing cels are modified, whether missing cels are created (create_missing_cels), what source_frame_index does, whether the source cel is preserved, or what happens at frame boundaries. This is substantial missing behavior for a mutating animation 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?

The description is one short, front-loaded sentence with no filler words. It is efficient, though arguably too terse for a nine-parameter tool. The conciseness itself is not the problem; the lack of compensating detail is.

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

Completeness1/5

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

Given nine parameters, no annotations, no output schema, and 0% schema description coverage, this description is far too incomplete. An agent cannot determine what source_frame_index means, whether cels are created, how easing curves differ, or what the tool returns. It needs substantial elaboration to be reliably invokable.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the nine parameters. It vaguely maps to opacity, frames, and easing, but it does not explain filename, layer_name, source_frame_index, create_missing_cels, or the meaning of each easing option. The '0 to 255' phrase adds some context about opacity values, but it does not clarify start_opacity and end_opacity are independent configurable values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 identifies a specific operation ('tween'), a specific resource ('cel opacity'), and the animation context ('across frames with easing'). This distinguishes it from siblings like tween_cel_positions_eased and tween_cel_scale_eased. However, the phrase 'from 0 to 255' is ambiguous: it could mean the allowed opacity range or fixed start/end values, which the start_opacity and end_opacity parameters do not imply.

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 is given for when to use this tool versus alternatives such as set_cel_opacity, tween_cel_positions, or oscillate_cel_positions. There are no stated prerequisites, exclusions, or side-by-side comparisons with sibling tools.

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

tween_cel_positionsB

Tween cel positions linearly across a frame range.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_xYes
end_yYes
start_xYes
start_yYes
filenameYes
end_frameYes
layer_nameYes
start_frameYes
source_frame_indexNo
create_missing_celsNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, and it falls short. It does not reveal what happens to existing cels, how missing cels are handled, whether create_missing_cels or source_frame_index affect behavior, or whether positions are overwritten or interpolated into new cels. For a mutating tool with 10 parameters, this is a significant transparency 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?

The description is a single, tight sentence with no filler or repetition. It is front-loaded with the core action and scope, making it easy to scan. However, it is arguably too terse for a tool with this many parameters, so it sacrifices informative content for brevity.

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

Completeness1/5

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

Given the tool's complexity—10 parameters, 8 required, no annotations, no output schema, and 0% schema description coverage—the one-sentence description is grossly insufficient. It omits all edge-case behavior, optional parameter effects, prerequisites, and any sense of what the operation does to the sprite's frame sequence. An agent cannot confidently invoke this tool correctly with only the provided information.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameter meanings, but it only mentions 'positions' and 'frame range' at a high level. It does not map start_x/start_y/end_x/end_y to the start and end frames, nor does it clarify the purpose of source_frame_index or create_missing_cels. The description adds minimal value beyond the parameter names themselves.

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 ('Tween') with a clear resource ('cel positions') and scope ('across a frame range'). The qualifier 'linearly' explicitly differentiates it from the sibling tool tween_cel_positions_eased, which introduces easing. This is concrete and unambiguous enough for an agent to understand what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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 linear motion over a frame range, which suggests it is the right choice when no easing is needed. However, it does not explicitly state when to use it over the many related sibling tools (e.g., tween_cel_positions_eased, set_cel_position, offset_cel_positions), nor does it provide exclusions or alternative guidance. The context is present but largely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tween_cel_positions_easedC

Tween cel positions across frames with deterministic easing.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_xYes
end_yYes
easingNosmoothstep
start_xYes
start_yYes
filenameYes
end_frameYes
layer_nameYes
start_frameYes
source_frame_indexNo
create_missing_celsNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure. It only mentions 'deterministic easing', which hints at predictable interpolation but does not disclose that this is a mutation operation, how existing cels are handled, or the effect of parameters like 'create_missing_cels'. The operational impact on the animation is left entirely unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it is under-specified. It functions more as a title than a description, providing no structured information or front-loaded critical details. While concise, it sacrifices all substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 11 parameters (8 required) and no output schema or annotations, this description is grossly incomplete. An agent cannot infer how to set easing, what 'source_frame_index' does, or whether 'create_missing_cels' is necessary. The description fails to provide any context needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It mentions none. The schema lists many fields (easing enum, source_frame_index, create_missing_cels, coordinates, frames) with no descriptions, and the description adds no meaning to any of them. An agent has zero guidance on how to set these parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('tween') and resource ('cel positions') and adds a distinguishing feature ('deterministic easing'). It clearly indicates the tool's function and hints at a differentiator from the sibling 'tween_cel_positions'. However, it does not explicitly contrast with that sibling or explain what 'deterministic' implies beyond a vague promise of predictability.

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 is provided on when to use this tool versus alternatives like 'tween_cel_positions' or 'tween_cel_opacity_eased'. The description only states what it does, not when to choose it. There are no exclusions or conditions that would help an agent select between the tween variants.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tween_cel_scale_easedA

Scale a source cel across frames with easing and a stable anchor.

ParametersJSON Schema
NameRequiredDescriptionDefault
anchorNocenter
easingNosmoothstep
replaceNo
filenameYes
end_frameYes
end_scaleYes
layer_nameYes
start_frameYes
start_scaleYes
source_frame_indexNo
create_missing_celsNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does add the useful detail that the anchor is stable, but it omits significant behavior such as replace=true and create_missing_cels=true defaults, and never states that existing cels in the range may be overwritten.

Agents need to know what a tool does to the world before 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. Every word contributes meaning and the core intent is immediately clear.

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 11 parameters, 6 required, no annotations, and no output schema, a one-line description is not enough. An agent would have to infer frame-range semantics, scaling units, optional flag behavior, and overwrite consequences, which is too much for a mutating tween operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 11 parameters, and the description only loosely maps to easing and anchor. It does not explain units for start_scale/end_scale, the meaning of source_frame_index, or the behavior controlled by replace and create_missing_cels.

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 ('Scale'), a specific resource ('a source cel'), and the scope ('across frames'), while also naming two distinguishing modifiers: 'easing' and 'a stable anchor.' This is enough for an agent to tell it apart from sibling position/opacity tween 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 phrase 'across frames with easing' clearly implies the intended use case: tweening a cel's scale over a frame range with easing. It does not explicitly route away from sibling tools like tween_cel_positions_eased or tween_cel_opacity_eased, 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.

upscale_pixel_artB

Upscale one image or animation with deterministic nearest-neighbor pixels and preserved transparency.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleYes
formatNo
input_filenameYes
output_filenameYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden, and it does add useful traits: deterministic nearest-neighbor scaling and transparency preservation. However, it does not state whether the input file is left untouched, whether a new output file is created, or how animations are handled beyond the word 'animation'.

Agents need to know what a tool does to the world before 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 leads with the verb and resource, then adds the two most decision-relevant behaviors. No filler or redundant restatement of 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?

For a simple upscale operation the core information is present, but there is no output schema or parameter documentation to compensate for the missing output-file/return behavior. An agent would likely infer that output_filename is written, yet the description does not confirm it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to compensate for undocumented parameters, but it does not explain scale, format, or filename semantics. The enum and constraints in the schema help, but the description only indirectly relates 'animation' to the format parameter.

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 the specific operation ('Upscale'), the resource ('one image or animation'), and the pixel-art-specific behavior (deterministic nearest-neighbor, preserved transparency). It is clearly distinct from conversion, filtering, and drawing siblings in the tool list.

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 is given about when to prefer this tool over related operations or when not to use it. The phrase 'Upscale one image or animation' implies the intended use, but no alternative tool or exclusion condition is mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_sceneA

Validate required layers and the requested frame range before export.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
end_frameNo
start_frameNo
required_layersYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the behavioral burden. It does disclose that the tool checks required layers and frame range without indicating mutation. However, it does not state what happens on validation failure, whether it returns a boolean/report, or whether 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?

A single, focused sentence with no filler. The key message—what is validated and when to run it—is front-loaded and every word earns its place.

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?

Given four parameters, no annotations, and no output schema, the description is too thin. It does not explain what the validation produces, how failures are reported, or what 'required layers' means in practice. An agent could call it but would not know how 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?

Schema description coverage is 0%, so the description must compensate. It maps well to 'required_layers' and to 'start_frame'/'end_frame' via 'requested frame range', but it omits 'filename', a required parameter. Parameter names help, but the description does not fully cover all four 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'), a clear resource (the scene's required layers and requested frame range), and the context ('before export'). This differentiates it from export and generation siblings by positioning it as a pre-flight 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 phrase 'before export' gives a clear usage context and tells the agent when to invoke this tool. It does not name alternatives or explicit when-not conditions, but the guidance is unambiguous enough to prevent confusion with export tools.

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. 185 tool updatesv1.0.0
    • First observedadd_frame
    • First observedadd_frames
    • First observedadd_group
    • First observedadd_layer
    • First observedadjust_brightness_contrast
    • First observedadjust_hsl
    • First observedadjust_hsl_native
    • First observedanimation_sanitize
    • First observedanimation_workflow_guide
    • First observedapply_color_grade
    • First observedapply_convolution
    • First observedapply_depth_lighting
    • First observedapply_dither_gradient
    • First observedapply_dither_pattern
    • First observedapply_enhancement_batch
    • First observedapply_enhancement_plan
    • First observedapply_gradient_rect
    • First observedapply_material_texture
    • First observedapply_palette_preset
    • First observedapply_pixel_outline
    • First observedaudit_animation
    • First observedaudit_asset_library
    • First observedaudit_asset_manifest
    • First observedbatch_asset_job
    • First observedbuild_animation_sheet
    • First observedbuild_contact_sheet
    • First observedbuild_scene_bundle
    • First observedbuild_sprite_runtime_bundle
    • First observedbuild_terrain_tileset
    • First observedcancel_asset_job
    • First observedclear_cel
    • First observedcompare_frames
    • First observedcompose_asset_preset
    • First observedcompose_asset_scene
    • First observedcompose_asset_scene_animation
    • First observedconvert_animation_to_pixel_art
    • First observedconvert_image_to_pixel_art
    • First observedcopy_cel
    • First observedcopy_frame
    • First observedcopy_layers_between_sprites
    • First observedcopy_region
    • First observedcopy_sprite
    • First observedcreate_asset_recipe
    • First observedcreate_canvas
    • First observedcreate_cel
    • First observedcreate_character_plan
    • First observedcreate_scene_plan
    • First observedcreate_slice
    • First observedcreate_style_bible
    • First observedcreate_tilemap_layer
    • First observedcrop_canvas
    • First observeddelete_frame
    • First observeddelete_layer
    • First observeddelete_slice
    • First observeddelete_tag
    • First observeddraw_circle
    • First observeddraw_circle_at
    • First observeddraw_ellipse_at
    • First observeddraw_line
    • First observeddraw_line_at
    • First observeddraw_on_tile
    • First observeddraw_path
    • First observeddraw_pixels
    • First observeddraw_pixels_at
    • First observeddraw_polygon
    • First observeddraw_rectangle
    • First observeddraw_rectangle_at
    • First observeddraw_text
    • First observedduplicate_frame_range
    • First observedduplicate_layer
    • First observedensure_layers_present
    • First observederase_color
    • First observederase_region
    • First observedexecute_asset_recipe
    • First observedexport_animation_gif
    • First observedexport_asset_pack
    • First observedexport_frame
    • First observedexport_layers
    • First observedexport_sprite
    • First observedexport_spritesheet
    • First observedexport_tag
    • First observedextend_scene
    • First observedextract_palette
    • First observedfill_area
    • First observedfill_area_at
    • First observedflatten_sprite
    • First observedflip_layer
    • First observedgenerate_asset_preset
    • First observedgenerate_beach_scene
    • First observedgenerate_biome_transition
    • First observedgenerate_color_ramp
    • First observedgenerate_day_night_cycle
    • First observedgenerate_environment_pack
    • First observedgenerate_library_variant_pack
    • First observedgenerate_motion_pack
    • First observedgenerate_normal_map
    • First observedgenerate_particle_burst
    • First observedgenerate_rain_overlay
    • First observedgenerate_scene_effect_stack
    • First observedgenerate_seamless_texture
    • First observedgenerate_source_variant_pack
    • First observedgenerate_sprite_anchors
    • First observedgenerate_sprite_hitboxes
    • First observedgenerate_sprite_shadow
    • First observedgenerate_water_caustics
    • First observedgenerate_water_reflection
    • First observedgenerate_world_map
    • First observedget_asset_job_status
    • First observedget_asset_library
    • First observedget_asset_library_item
    • First observedget_asset_preset
    • First observedget_color_stats
    • First observedget_composite_pixel
    • First observedget_composite_rect
    • First observedget_palette
    • First observedget_pixel_color
    • First observedget_pixels_rect
    • First observedget_sprite_info
    • First observedget_tile_at
    • First observedget_tilemap_info
    • First observedget_tools_by_folder
    • First observedget_tools_list
    • First observedget_tools_search
    • First observedharmonize_asset_palette
    • First observedimport_image_as_layer
    • First observedinspect_animation_quality
    • First observedinspect_asset_batch
    • First observedinspect_asset_bundle
    • First observedinspect_reference
    • First observedinspect_sprite_geometry
    • First observedinvert_colors
    • First observedlist_convolution_matrices
    • First observedlist_palette_presets
    • First observedlist_slices
    • First observedlist_text_fonts
    • First observedmeasure_text
    • First observedmerge_layer_down
    • First observedmove_region
    • First observednormalize_sprite
    • First observedoffset_cel_positions
    • First observedoscillate_cel_positions
    • First observedoutline_native
    • First observedplan_asset_scene
    • First observedpropagate_cels
    • First observedpropagate_frame_to_range
    • First observedquantize_to_palette
    • First observedrecommend_asset_scene
    • First observedremap_colors_in_cel_range
    • First observedrename_layer
    • First observedrender_onion_skin
    • First observedreorder_layer
    • First observedreplace_color
    • First observedresize_canvas
    • First observedrotate_layer
    • First observedrun_asset_quality_gate
    • First observedrun_asset_recipe
    • First observedrun_lua_script
    • First observedserver_capabilities
    • First observedset_cel_opacity
    • First observedset_cel_position
    • First observedset_color_mode
    • First observedset_frame
    • First observedset_frame_duration
    • First observedset_frame_duration_all
    • First observedset_layer
    • First observedset_layer_blend_mode
    • First observedset_layer_opacity
    • First observedset_layer_visibility
    • First observedset_onion_skin
    • First observedset_palette
    • First observedset_slice_center
    • First observedset_slice_pivot
    • First observedset_tag
    • First observedset_tiles
    • First observedstart_asset_job
    • First observedstart_preview_server
    • First observedstop_preview_server
    • First observedsuggest_enhancement_plan
    • First observedsummarize_asset_library
    • First observedtween_cel_opacity_eased
    • First observedtween_cel_positions
    • First observedtween_cel_positions_eased
    • First observedtween_cel_scale_eased
    • First observedupscale_pixel_art
    • First observedvalidate_scene

TDQS

C2.6/5.0

Scored across 185 tools

Disambiguation2/5

Many tools perform nearly the same operation with small variations, such as draw_pixels/draw_pixels_at, adjust_hsl/adjust_hsl_native, apply_dither_gradient/apply_dither_pattern, and numerous generate_*_pack/compose_*_scene generators. The descriptions help, but the boundaries are not obvious from names alone, so an agent can easily pick the wrong variant.

Naming Consistency4/5

The overwhelming majority of tools use a readable snake_case verb_noun pattern (create_canvas, export_sprite, get_palette, set_frame_duration), and _at suffixes consistently mark layer/frame-targeted variants. Minor exceptions like server_capabilities, animation_workflow_guide, and outline_native break the pattern but do not obscure the overall scheme.

Tool Count1/5

185 tools is far beyond a well-scoped MCP surface; even a comprehensive Aseprite workflow does not need this many first-class entry points. This is an extreme count that will force agents to spend excessive tokens and effort on tool selection.

Completeness4/5

The surface is unusually broad: document/layer/frame/cel editing, palettes, tilemaps, text, slices, animation, exports, batch jobs, and procedural asset generation are all covered. Minor lifecycle gaps such as no explicit document save/close/delete and only validated onion-skin settings remain, but run_lua_script and export tools provide workarounds.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers