Skip to main content
Glama
ty-meador

civ-v-llm-harness

by ty-meador

city_task

Annex a puppet city, raze it, or halt razing to manage captured cities. Use city_screen flags to see puppet/razing state and act by city_id.

Instructions

City-screen tasks: annex (a puppet), raze, or unraze. Annexed cities get resistance; raze burns one population per turn. cities()/city_screen already flag puppet/razing state.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYes
city_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.11.0

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 burden, and it does disclose meaningful consequences: annex creates resistance and raze burns one population per turn. However, it omits whether actions are reversible, what permissions or preconditions apply, and what happens on failure, so disclosure is partial.

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?

Three sentences, front-loaded with the operations and followed by mechanical effects and a pointer to related state. Dense and largely waste-free, though the closing sentence is somewhat incidental.

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?

A mutation tool with no annotations, no output schema, and 0% parameter coverage. It compensates by supplying the action values and consequences, but the missing city_id semantics and lack of reversibility/permission detail leave gaps for a destructive 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 coverage is 0%, so the description must compensate. It usefully enumerates the valid action values (annex, raze, unraze), effectively supplying the missing enum, but it says nothing about city_id or how to identify the target city.

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 resource (city) and the exact operations (annex, raze, unraze) it performs, which is more than a tautology. It distinguishes itself somewhat by noting it operates on the city screen and relies on state already flagged by cities()/city_screen, though it does not fully contrast against those sibling 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?

Implies usage by telling the agent that cities()/city_screen already flag puppet/razing state, hinting that those should be consulted first, but gives no explicit when-to-use or when-not-to-use guidance or named alternatives.

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