Skip to main content
Glama

Lint event command lists

lint_events

Statically checks RPG Maker MV event command lists to flag structural errors, unreachable commands, long messages, invalid transfers, missing common events, and unnamed switches/variables.

Instructions

Statically checks event command lists in map events, common events and troop pages. Rules: unterminated-list and block-structure (missing code 0 terminator, unclosed or mismatched choices/branches/loops, indent jumps; error), unreachable-command (a command right after Exit Event Processing at the same indent; warning), long-message-line (a Show Text line too long for the window; warning), transfer-missing-map and transfer-out-of-bounds (direct Transfer Player to a map not in MapInfos or outside its size; error), missing-common-event (Common Event call to an id that does not exist; error), unnamed-switch and unnamed-variable (Control Switches/Variables on ids with no name in System.json; info). Variable-designated transfers are not checked. long-message-line removes message control codes (\C[n], \V[n], \N[n], \P[n], \I[n], { } . | ! > < ^) and compares the remaining character count with maxLineChars; the default of 50 is only an approximation, since real fit depends on the font, face graphic and window width. Findings carry location {kind, mapId, eventId, page, index}; page and index are 0-based positions in the event's pages and command list (common events use page 0, troops use the troop id as eventId). minSeverity defaults to warning, so info findings appear only when requested. scope defaults to all; mapId limits the map part to one map. Maps whose file cannot be read are listed in skippedMaps. Results are sorted by severity then location and capped at 300 findings; counts cover all findings and truncated is the number cut.

Input Schema

NameRequiredDescriptionDefault
mapIdNoLint only this map (affects the maps part of the scope).
scopeNoWhich event lists to lint.all
minSeverityNoLowest severity to report.warning
maxLineCharsNoLongest allowed Show Text line after control codes are removed (approximate).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.1

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: it enumerates every rule with its severity class, discloses what is deliberately not checked ('Variable-designated transfers are not checked'), explains the approximate nature of maxLineChars, and reports output mechanics (sort order, 300-finding cap, truncated count, skippedMaps). This is behavioral context an agent could not get from any structured field.

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

Conciseness4/5

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

Purpose is front-loaded in the first sentence and no sentence is filler; the rule catalogue and output mechanics all earn their place. It is a single dense paragraph, though, so the rule list would scan better as a structured block — a minor structural, not length, issue.

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

Completeness5/5

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

No output schema exists, and the description compensates fully: findings carry {kind, mapId, eventId, page, index}, page/index are documented as 0-based with the troop-id convention for eventId, and truncation/counts/skippedMaps are all described. For a four-parameter read-only lint tool, nothing an agent needs to call it or interpret results is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description genuinely adds: it clarifies that minSeverity's warning default suppresses info findings unless requested, that mapId only narrows the map portion of the scope, and it details exactly how maxLineChars is computed (control codes stripped, font-dependent approximation).

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

Purpose5/5

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

States a specific verb and resource: 'Statically checks event command lists in map events, common events and troop pages.' The scope is exact and it is distinguishable from sibling validators like validate_project or check_references, which are not described as linting event command lists with rule-level severities.

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

Usage Guidelines3/5

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

Usage is implied through defaults ('minSeverity defaults to warning, so info findings appear only when requested', 'scope defaults to all; mapId limits the map part to one map'), which tells the agent how to widen or narrow a run. However, it never explicitly says when to choose this over validate_project or check_references, nor does it state any exclusions, so the agent must infer the routing.

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