Skip to main content
Glama

amend_factory

Add or drop individual machines from a factory label without re-selecting the whole factory. Fix a wrongly-included machine while leaving other anchors unchanged.

Instructions

Add or drop individual machines on a label, without re-anchoring the rest of it.

name_factory re-anchors a label to whatever its selector picks, so correcting one wrongly-included machine meant re-selecting the whole factory. This edits the membership: every anchor add and drop do not name is left exactly as it was, including ids this save no longer has.

add runs first, then drop, then prune_missing, which clears the anchors list_factories reports gone. One machine is machine:<instance> on either side. Dropping the last machine is refused -- deleting a label is forget_factory.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
addNoselector terms for what to ADD. product:<item> | recipe:<name> | building:<class or name> | near:<place>@<radius_m> | base:<n> | line:<n> | slab:<n> | proposal:<n> | label:<name> | machine:<instance> | all. Terms are ANDed; comma-separated values inside one term are ORed; prefix a term with '-' to exclude it
dropNoselector terms for what to DROP, same grammar
nameYes
saveNo
as_ofNopin to one world state: a sav:… token from an earlier answer
notesNo
worldNo
dry_runNo
prune_missingNodrop every anchor this save no longer has

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.2/5.0
Behavior4/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 much of it: it discloses operation ordering (add, then drop, then prune_missing), that unnamed anchors are left untouched even if their ids are gone, that dropping the last machine is refused, and what prune_missing clears. It stops short of stating whether the change is destructive/reversible, whether it needs write permissions, or what the result looks like.

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 purpose leads in the first sentence, followed by the rationale and the operation-ordering rules. Dense and mostly earned, though the second sentence's framing of the name_factory problem is slightly verbose for the information it delivers.

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?

For a 9-parameter mutation tool with no annotations and no output schema, the description covers the central mechanics well but leaves several parameters (name, world, notes, dry_run, save) and the return/error surface unexplained. Adequate, with visible gaps.

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 only 44% across 9 parameters. The description explains the add/drop grammar, the machine:<instance> form, and prune_missing behavior, and implies the save semantics ('ids this save no longer has'), but name, world, notes, and dry_run receive no explanation in either the description or the 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?

States a specific verb and resource: add or drop individual machines on a label without re-anchoring the rest. It explicitly contrasts with name_factory (re-anchors) and forget_factory (deletes the label), so an agent can place it within the sibling set without opening schemas.

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?

Names the alternative name_factory and the condition that selects this tool instead (fixing one wrongly-included machine rather than re-selecting the whole factory), and routes label deletion to forget_factory. Both 'when to use' and 'when not to use' are covered.

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