Skip to main content
Glama

propose_input_preparation

Read-onlyIdempotent

Preview which copper-layer text would move to silkscreen and obtain a revision token before routing, without modifying any files.

Instructions

Dry run of input preparation: lists every copper-layer text (F.Cu/B.Cu gr_text) that would move to silkscreen, and returns a revision_token. Writes nothing.

Run this step once per board, BEFORE pin_rule_baseline and before any routing; never inside a routing attempt. Copper text it cannot handle (inner-layer text, text boxes) is listed under unhandled, and the input floor is then NOT a clean baseline. With nothing to move there is no token (status nothing_to_do). This tool gives no verdict: only verify_board does.

output_dir: new directory for the prepared project copy (default: sibling <project>_prepared); it must not be inside the source project or non-empty.

Input Schema

NameRequiredDescriptionDefault
pcb_pathYes
output_dirNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotent/non-destructive, and the description reinforces this with 'Writes nothing'. It adds real behavioral context annotations cannot: the `unhandled` bucket for inner-layer text and text boxes, the `nothing_to_do` no-token case, and the absence of any verdict. Minor gap: it mentions creating a 'new directory for the prepared project copy' without clarifying whether that directory is created now or only at confirm time, which sits in tension with 'writes nothing'.

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?

Front-loaded with the core action and the no-write guarantee, then ordering, then edge cases, then the parameter note — a sensible hierarchy with no filler sentences. It is dense and reads as a block, but each clause 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?

Despite having no output schema, the description tells the agent what comes back (the list of copper text, a revision_token, an `unhandled` section, status nothing_to_do). Combined with the ordering constraints and output_dir rules, nothing needed to invoke it correctly 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?

Schema description coverage is 0%, so the description must carry the load. It fully specifies output_dir's default (sibling `<project>_prepared`) and two hard constraints (must not be inside the source project, must not be non-empty) that an agent could not infer from the schema. pcb_path is left to the name alone, which is low-risk but unstated.

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 action (dry-run listing of copper-layer text that would move to silkscreen) and its return (a revision_token), with the 'Dry run' framing immediately distinguishing it from the sibling confirm_input_preparation. An agent knows what this does and what it does not do (change the board) without opening anything else.

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?

Explicit sequencing: 'once per board, BEFORE pin_rule_baseline and before any routing; never inside a routing attempt' tells the agent when to run it and when not to. It also routes verdict-seeking to a named alternative ('only verify_board does'), which the sibling list confirms.

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