Skip to main content
Glama
ty-meador

civ-v-llm-harness

by ty-meador

finish_turn

End your turn in Civilization V and wait for the next turn, returning status, digest, and notes. Safe to repeat.

Instructions

The turn boundary as one call: end my turn, wait until it is my turn again, and return the new turn -- status (as turn_status), digest (as turn_digest: what happened while I was away), turn and notes (notebook entries since my last finish_turn or briefing; notes="all" brings the latest eight). briefing=true returns briefing (see the briefing tool) in place of status and digest. If the turn will not end, ok=false and end_turn carries the refusal with the todo that blocks it: nothing is waited on. Safe to repeat: when it is already not my turn it only waits, never ends a second turn. Returns early with discussion_pending=true (an AI wants an answer: discussion() then respond_discussion / accept_deal / refuse_deal / dismiss_discussion, then call again) or tech_popup_pending=true (set_research). timed_out=true means the AIs are still moving after timeout_seconds: call again (the default 600 is safe in Claude Code, which moves a long call to a background task; under a client with a hard per-call limit stay below it). Progress notifications go out every few seconds. skip_quiet_turns=N keeps ending turns, up to N more, while nothing needs me (no unit awaiting orders, empty city, promotion, popup, blocker, expiring ally, worsening alert, paused order or eventful digest); wake_on adds my own words (event kinds or notification text, e.g. ["Machinery"]). The skipped turns' digests are merged and turns_skipped / woke_because say what happened; the harness never issues an order for me. One client owns the turn: another client of this seat gets ok=false with turn_claim instead of ending a turn under it; force=true takes it over. autosave=false skips the quick-save before ending. Every key of the reply, what wakes a quiet run, and the claim rules: how_to_play("finish_turn").

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
forceNo
notesNonew
wake_onNo
autosaveNo
briefingNo
timeout_secondsNo
skip_quiet_turnsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.11.0

TDQS

A4.9/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: it discloses the mutation (ending a turn), idempotency ('safe to repeat ... never ends a second turn'), the refusal path (ok=false with end_turn carrying the blocking todo), turn-claim ownership rules with force=true takeover, autosave skipping, and progress notifications every few seconds.

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 purpose is front-loaded and the dense content is largely warranted by the tool's complex control flow, but the prose is run-on and packs several concepts per sentence, making it harder to scan than a slightly restructured version would be.

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?

With no output schema, the description names and explains the return keys (status/turn_status, digest/turn_digest, turn, notes, turns_skipped, woke_because, ok, end_turn, turn_claim, discussion_pending, tech_popup_pending, timed_out), so an agent understands both invocation and result handling.

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

Parameters5/5

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

Schema description coverage is 0%, yet the description gives meaning to all seven parameters: notes ('all' brings the latest eight), skip_quiet_turns=N, wake_on (event kinds or notification text, e.g. ['Machinery']), briefing=true, autosave=false, force=true, and timeout_seconds (default 600 with client-specific caveats). This fully compensates for the empty 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 first sentence states a precise composite verb sequence: end my turn, wait until my turn again, and return the new turn. It clearly distinguishes itself from the sibling end_turn and wait_for_my_turn by framing itself as 'the turn boundary as one call,' so an agent can tell what it 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 Guidelines5/5

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

Gives explicit when-to-use and what-to-do-next guidance for each branch: discussion_pending routes to discussion()/respond_discussion/accept_deal/refuse_deal/dismiss_discussion, tech_popup_pending routes to set_research, and timed_out says to call again. It also documents safe repetition, the skip_quiet_turns/wake_on quiet-run behavior, timeout_seconds client constraints, and points to how_to_play('finish_turn') for full detail.

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