Skip to main content
Glama

Is the draft ready to shoot?

shoot_plan_draft_gate
Read-only

The final check on a drafted plan: is it finished and ready to shoot? It returns ready or not ready, with a record of what was checked and what was not. A plan that does not pass gets a normal answer, not an error: the reasons are the next actions, each with its plan path and a fix. A pass is the result to show your human. It holds the plan to the format and to editing readiness, not to taste. No AI model runs. Input: plan, a dpl.plan/1 object. Output: dpl.draft-gate/1 with passed (true or false), result (ready_to_shoot or not_ready), the reasons and counts, and next_tool, the tool to call next. The engine's own wording may name its command line: ignore that and follow next_tool, which names the tool to call next and what to send. We don't keep the plan. We log a one-way fingerprint (hash) of it, its size, the tool, the type of client, the result and the time taken. Needs an agent key from a Shoot Plan account. Free, and it does not count toward the account's 3 free projects a month. Plans up to 8 MB and 120 calls a minute (5,000 a day).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "plan": "<plan>"
    },
    "name": "shoot_plan_draft_gate"
  }
}

Input Schema

NameRequiredDescriptionDefault
planYesThe plan itself: a dpl.plan/1 JSON object (not text inside a string). Call shoot_plan_format for the schema links and an example.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint; the description goes well beyond them by stating that failure returns a normal result rather than an error, that no AI model runs, that the plan is not retained but a one-way hash, size, tool, client type, result and duration are logged, and that an agent key is required. It also gives concrete operational limits (8 MB plans, 120 calls/min, 5,000/day) and clarifies it is free and excluded from the 3-project monthly quota. Nothing here contradicts readOnlyHint=true — logging a fingerprint is not a mutation of the plan.

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 core question is front-loaded in the first sentence, and the dense middle section (error semantics, output shape, next_tool) is ordered by what an agent needs in sequence. It is on the long side, with a little redundancy between 'is it finished and ready to shoot?' and 'It returns ready or not ready', but nearly every sentence carries operational information.

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?

Even though an output schema exists, the description adds the pass/fail contract that matters most: not-ready is a value, not an error, and the reasons are themselves actionable next steps. Combined with the next_tool redirect, auth requirement, limits and retention policy, an agent has everything needed to call this correctly on the first attempt.

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?

There is only one parameter and schema description coverage is 100%, so the schema already explains that plan is a dpl.plan/1 JSON object rather than text. The description repeats that ('Input: plan, a dpl.plan/1 object') and usefully routes to shoot_plan_format for the schema and an example, but adds no format or construction detail of its own. Baseline 3 applies when the schema does the heavy lifting.

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?

It names a specific verb and resource (a final gate check on a drafted plan) and frames it as a yes/no readiness question, so the agent knows exactly what it gets back. It also draws a scope line — 'format and editing readiness, not to taste' — which separates it from formatting and creative-review siblings in the same family.

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?

The phrase 'final check on a drafted plan' plus 'A pass is the result to show your human' establishes the timing: after drafting, before shooting, as the last gate. The scope boundary ('format and editing readiness, not to taste') tells the agent what this gate will not catch. What is missing is an explicit pointer to the sibling it replaces for earlier or narrower checks (e.g. shoot_plan_check, shoot_plan_missing_details).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources