Skip to main content
Glama

Petitions

petitions

Review outstanding location requests for temples/guildhalls and residency/citizenship bids, showing deadlines and resolution status.

Instructions

The fort's outstanding agreements as facts: location petitions (temple/guildhall requests from a deity's worshippers or a guild) and residency/citizenship petitions (a migrant or visitor asking to join the fort), each with its petitioner, agreed date, and resolution status. location_petitions[] carries building (TEMPLE/GUILDHALL), tier (1 = temple/guildhall, 2 = complex/grand), the petitioning deity (temple) or guild profession (guildhall) when one was named, age_days since the petition was raised, and warned_ready (the fort has already been told the location can be established — a still-outstanding petition with warned_ready true is the classic silent-failure case: agreed to but never actually zoned). residency_petitions[] carries kind (Residency/Citizenship), age_days, and deadline_days (days left before the petitioner's patience runs out, null if no timeout is tracked). Both carry awaiting_decision (true if the petition sits in the fort's pending decision queue right now) and status (outstanding/satisfied/denied/expired, derived from the agreement's own flags — see the doc for how this maps to DFHack fields). This is the demand-fulfillment counterpart to rooms_and_zones's temple/guildhall inventory (needed_by_worshippers there is inferred from citizen worship with no formal petition yet; a row here is an actual agreement DF is tracking) — compose the two rather than expecting either to duplicate the other. Lists are capped at 50 each (see the *_truncated flags). Returns {"error":"no fort loaded"} if no fort is active.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It thoroughly explains output semantics: the meaning of warned_ready, deadline_days, status derivation from flags, truncation at 50 items with *_truncated flags, and the error response when no fort is loaded. This is exemplary transparency, exceeding what annotations would likely provide.

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

Conciseness5/5

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

Though the description is long, every sentence is informative and necessary. It is front-loaded with the core purpose, then methodically covers field semantics, associations, limits, and errors. The structure flows logically from general to specific, and there is no redundancy or filler. It is appropriately sized for the complexity of the tool.

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?

Given the extensive data model (two petition types, many fields, derived statuses, truncation flags) and the absence of an output schema, the description is remarkably complete. It explains not only what is returned but also how to interpret edge cases (e.g., warned_ready true with outstanding status, null deadlines, truncated lists). It also contextualizes the tool within the fort's broader analysis, mentioning the relationship to rooms_and_zones. Nothing essential 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?

The tool has zero parameters, so the description cannot add parameter-specific meaning. The baseline for 0 parameters is 4, and the description does not need to explain parameters. It does, however, provide extensive detail about the returned data, which is more than expected. There is no gap in this area.

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 description clearly states the tool's purpose: to list the fort's outstanding agreements as facts, specifically location petitions and residency/citizenship petitions. It uses specific verbs and resources ('location petitions', 'residency/citizenship petitions') and distinguishes itself from the sibling tool rooms_and_zones by explicitly noting the difference in how needs are tracked. This is far beyond a vague restatement.

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?

The description explicitly positions the tool relative to rooms_and_zones, stating they are complementary and should be composed rather than expecting either to duplicate the other. It also provides context on when this tool is relevant (actual agreements tracked by DF vs inferred needs). This gives clear guidance on when to use this tool vs alternatives, and even flags the classic silent-failure case.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alexanderolvera/dfhack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server