Skip to main content
Glama

check_game_ready

Read-only

Validate game-ready assets before export: catch naming, scale, material, normals, texture, and budget errors; flag duplicate suffixes, missing UVs, n-gons, open shells, and symmetry issues.

Instructions

Pre-export gate. Errors: bad names, unapplied scale, no material, faces without a material (a boolean cutter without one leaves them), inward normals, zero-area faces, oversized textures, budget overruns (the max_* limits). Warnings: duplicate suffixes (.001), many material slots, empty material slots, missing UV, n-gons, open shells, and a mesh that is nearly but not fully symmetric about symmetry_axis: under 10 percent of its vertices have no mirror partner (plane: the middle of its box, or 0). That is a side broken by an uneven selection; a silhouette does not show it. symmetry_axis=null skips it. ready is true when there are no errors. budget_only=true is the cheap budget question at any stage: it only counts tris, objects, materials and estimated draw calls of names (or all visible meshes) and lists the limits exceeded in over_budget. It also gives draw_calls_if_instanced: objects that repeat one mesh with the same materials cost one call with GPU instancing; the hint says when merging them with combine pays off.

Input Schema

NameRequiredDescriptionDefault
namesNo
max_trisNo
require_uvNo
budget_onlyNo
max_objectsNo
max_textureNo
name_patternNo^[A-Za-z0-9_]+$
max_materialsNo
symmetry_axisNoX
max_draw_callsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only establish read-only/non-destructive/no-open-world, and the description goes well beyond that: it distinguishes errors from warnings, states that `ready` is true only with zero errors, explains that a boolean cutter without a material leaves faces behind, warns that near-symmetry faults are invisible in silhouette, and notes symmetry_axis=null skips the check. It also discloses the instancing/draw-call economics that budget_only reports. This is rich behavioral context the annotations cannot supply.

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

Conciseness4/5

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

Front-loaded with the purpose, then errors, then warnings, then the budget_only mode — a logical order with no filler sentences. It is dense and slightly long as a single block, which costs it a point, but every clause maps to an actual check or parameter.

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

Completeness4/5

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

For a 10-parameter tool with no output schema, the description covers the validation taxonomy, the `ready` flag semantics, and two output fields (over_budget, draw_calls_if_instanced) plus the instancing hint. Some parameter defaults and the remainder of the return payload are left implicit, so it is nearly but not fully complete.

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 carry the load, and it does map most parameters to meaning: names, the `max_*` budget limits, max_texture ('oversized textures'), max_materials ('many/empty material slots'), require_uv ('missing UV'), name_pattern ('bad names'), and symmetry_axis including the null-skip behavior. It does not individually disambiguate max_tris vs max_objects vs max_draw_calls or explain default values, so it is strong but not complete.

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

Purpose4/5

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

Opens with a concrete framing ('Pre-export gate') and then enumerates the exact error and warning categories checked, so an agent knows precisely what class of validation this performs. It clearly separates itself from mesh-level siblings like check_mesh through the export-readiness framing. It never names a sibling, so it stops short of the explicit differentiation a 5 requires.

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?

'Pre-export gate' establishes the primary call site, and the budget_only paragraph explicitly states it is 'the cheap budget question at any stage', giving a clear when-to-use rule for the fast mode. There is no explicit statement of when NOT to call it or which sibling to prefer for narrower checks (e.g. check_symmetry, check_mesh).

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