Skip to main content
Glama

Change dimensions and tags

edit_annotations
Destructive

Switch or update dimension chains, room reference schedules, details and symbol legends on a floor plan. Tie dimensions to what they touch, renumber tags in reading order, or bake chains into editable dimensions.

Instructions

Change the plan annotations. anchor=true ties every straight dimension to what its ends touch now, so it is measured again on every change instead of drifting (tie them while the numbers are right); one already off its face is not tied and comes back in left [[id, written, measured, near]], and one whose anchor died with a deleted piece is tied again or released. Switch dims (dimension chains), refs (the room reference schedule, whose tags stay with their pieces; renumber=true numbers them again in reading order), details (brand/model/link in refs) and legend (symbols with counts): a switch answers with the modes, changed, and what it shows — chains [[from,to,cm]] for dims, symbols {discipline:[[name,count]]} for legend; refs=true returns the schedule {dims,refs,details,legend,rooms:[[room,[[tag,name,w,d,h,brand?,model?,url?]]]]}. bake=true turns the automatic chains into editable dimensions (ids returned). annotations reads them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bakeNoConvert the automatic dimension chains into editable dimensions
dimsNoShow engineering dimension chains (`auto_dimensions` in the project JSON)
refsNoShow the room reference schedule and tags (`references` in the JSON)
anchorNoTie every straight dimension to what its ends touch right now, so from here on they follow the drawing. Run it while the numbers are right
legendNoLegend of electrical/plumbing symbols with counts
detailsNoInclude brand, model and link in references (`reference_details`)
renumberNoNumber the schedule again in reading order, closing the gaps pieces left behind. Numbers are otherwise kept by each piece for good

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
vNo
okNo
idsNo
revNo
dimsNo
leftNo
refsNo
textNo
roomsNo
chainsNo
legendNo
changedNo
detailsNo
symbolsNo
anchoredNo
releasedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changedv3.0.0
    • removedOutput schema / properties / anchored / description
      Removed value: -"anchor=true: labels now tied to what they measure"
    • removedOutput schema / properties / chains / description
      Removed value: -"dims=true: [[x,y], [x,y], cm]"
    • removedOutput schema / properties / changed / description
      Removed value: -"Switches that changed"
    • removedOutput schema / properties / details / description
      Removed value: -"Details shown"
    • removedOutput schema / properties / dims / description
      Removed value: -"Dimensions shown"
    • removedOutput schema / properties / ids / description
      Removed value: -"Ids created or touched"
    • removedOutput schema / properties / left / description
      Removed value: -"anchor=true: [id, written, measured, near id] left as they were"
    • removedOutput schema / properties / legend / description
      Removed value: -"Legend shown"
    • removedOutput schema / properties / ok / description
      Removed value: -"Always true"
    • removedOutput schema / properties / refs / description
      Removed value: -"Reference tags shown"
    • removedOutput schema / properties / released / description
      Removed value: -"anchor=true: labels let go"
    • removedOutput schema / properties / rev / description
      Removed value: -"Plan revision"
    • removedOutput schema / properties / rooms / description
      Removed value: -"The schedule: [room, [[tag, name, w, d, h, …]]]"
    • removedOutput schema / properties / symbols / description
      Removed value: -"legend=true: {electrical?, plumbing?} → [name, count]"
    • removedOutput schema / properties / text / description
      Removed value: -"The reply as written"
    • removedOutput schema / properties / v / description
      Removed value: -"Plan version written to, when there are several"
  2. First observedv0.1.0

TDQS

A3.5/5.0
Behavior4/5

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

Annotations flag a destructive, non-read-only edit, and the description goes well beyond that: it explains that anchor makes dimensions re-measure on every change, what happens to already-off dimensions ('comes back in left [[id, written, measured, near]]'), what happens when an anchor's piece is deleted, and that bake permanently converts automatic chains into editable dimensions. These are meaningful behavioral consequences the annotations do not carry.

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

Conciseness2/5

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

The body is one dense run-on block of poorly punctuated prose with embedded return-shape literals ('{dims,refs,details,legend,rooms:[[room,[[tag,...]]]]}') that is hard to parse and not front-loaded. Several clauses duplicate the per-parameter schema descriptions verbatim, so the text is not earning its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex (7 modes, mutation, output schema), and the description covers the destructive switches, the anchor lifecycle, and what the mode responses contain. With an output schema and annotations already present, the remaining gaps (no explicit when-to-use routing) are minor; completeness is largely satisfied.

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 description coverage is 100%, so the schema already documents all seven flags and the description largely restates them. It does add some nuance (renumber's reading-order behavior, the shape refs=true returns, legend/chains output formats), but much of this overlaps with the per-parameter schema text rather than extending it, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource is clear ('Change the plan annotations') and the description enumerates the concrete facets it operates on: dims, refs, details, legend, bake, anchor. It also implicitly distinguishes itself from the read-only sibling with '`annotations` reads them.' It stops short of a crisp one-line scope statement, but an agent can tell what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

There is real conditional guidance for one mode ('tie them while the numbers are right' / 'Run it while the numbers are right'), and the pointer that `annotations` reads rather than edits. But for the other six switches (dims, refs, legend, details, renumber, bake) there is no when-to-use, sequencing, or alternative-selection guidance — usage is implied by the mode descriptions rather than stated.

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