Skip to main content
Glama
ty-meador

civ-v-llm-harness

by ty-meador

unit_mission

Issue orders to a Civilization V unit: settle, fortify, heal, attack, pillage, build, spread religion, or automate exploration and construction.

Instructions

Give a unit a mission: MISSION_FOUND (settle here), MISSION_FORTIFY, MISSION_SLEEP, MISSION_SKIP, MISSION_HEAL, MISSION_ALERT, MISSION_RANGE_ATTACK (x,y), MISSION_PILLAGE (result includes gold_gained), MISSION_EMBARK/DISEMBARK... An air strike is MISSION_MOVE_TO onto the target plot (that is how the game issues it); like a melee move onto an enemy, the result then carries attack with both sides' hp before/after and who died. An intercepted strike says so: attack.intercepted, interceptor, shot_down (from the game's own banner). MISSION_BUILD: pass the improvement in build, e.g. build="BUILD_FARM" (do NOT put it in x/y -- those are for movement-shaped missions). Builds on the unit's own tile. MISSION_SPREAD_RELIGION / MISSION_REMOVE_HERESY: the unit must be inside or adjacent to the target city; the result's effects reports that city's followers/majority before and after, spreads_left, and (for a city-state) influence before/after, so no follow-up read is needed to know whether the spread worked. MISSION_CREATE_GREAT_WORK: the reply's great_work names the work and the city/building slot it filled. AUTOMATE_EXPLORE / AUTOMATE_BUILD (the unit panel's automation buttons, when available_unit_actions lists them) hand the unit to the game's own automation; it then never blocks end_turn. The reply has automated=true, and the unit is listed under turn_status.todo.ongoing until a new move_unit / unit_mission takes it back. Selects the unit like the unit panel does (orders go through the game's network path). A unit on a conditional order (give_order) is taken back: the order pauses (order_paused).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
buildNo
missionYes
unit_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.11.0

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 full burden and does so well: it discloses that air strikes return an `attack` payload with both sides' hp and interceptor/shot_down fields, that effects report followers/influence before-and-after, that great_work names the work, that automation sets automated=true and lists the unit under turn_status.todo.ongoing, and that a conditional order is paused on reassignment. It stops short of stating permissions, failure modes, or validation errors.

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 content is information-dense and mostly earns its place, but it is delivered as a single sprawling block of run-on sentences with no headings or bullet structure, making it harder to scan than it needs to be for the amount of material covered.

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 no annotations, no output schema, and 0% schema coverage, the description is impressively complete, covering mission semantics, return payloads, and side effects. Remaining gaps are minor (error conditions, parameter defaults).

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 0%, so the description must compensate, and it does: it explains that x/y are for movement-shaped missions, that MISSION_BUILD uses `build` rather than x/y, and it enumerates valid mission values. The unit_id and the default -1 sentinel values are left implicit, keeping it from a 5.

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 (give a mission) and resource (a unit), then enumerates the mission values so the agent knows the exact scope. It also distinguishes itself from move_unit and give_order by describing how missions interact with those tools.

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?

Provides concrete when-to-use guidance for several missions (e.g. SPREAD_RELIGION requires the unit inside or adjacent to the target city; MISSION_BUILD takes the improvement in `build`, not x/y; automation buttons are usable when available_unit_actions lists them). It references siblings like available_unit_actions and give_order but never states a general 'use this instead of X' rule.

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

Deploy Server

Other Tools