Skip to main content
Glama

Finish the drawing

finish
Read-onlyIdempotent

Complete ArchLang plans for export by adding missing room furniture and required sheet statements after lint passes, filling only gaps and reporting unresolved items.

Instructions

Complete a plan for export by adding what it lacks; run it once lint is clean. Two stages. furnish puts furniture, by room use, in each rectangular room that holds none (single-storey plans; a furnished room is never touched, and one that lacks a piece its use requires is named in unresolved with the missing pieces, not filled; placement is against wall / in <room> anchor, never absolute). sheet adds the sheet statements the plan lacks (paper, scale, dims auto, title, schedule rooms, legend), choosing the finest standard scale on the smallest sheet that holds the drawing. It fills only what is missing and deletes nothing; only runs one stage; reissue:true may replace paper/scale (only those) when the drawing does not fit them. Returns { ok, changed, changes, unresolved, source }; a plan that does not compile comes back untouched with ok:false, and every room left empty (its use has no furniture row or is unknown, or furnishing it would raise a new diagnostic) and every sheet statement left out is named in unresolved with the reason; a note with scope set (outside-table) asks nothing of you unless that room should hold furniture.

Input Schema

NameRequiredDescriptionDefault
onlyNoRun only this stage. Default: `furnish`, then `sheet`.
sourceYesArchLang source to finish.
reissueNoAllow `paper` and `scale` to be replaced when the drawing does not fit the authored sheet.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

The description goes well beyond the annotations by explaining that it fills only missing furniture and sheet statements, never deletes, leaves unfurnished or unresolved rooms named in `unresolved`, and returns the source untouched with `ok:false` if compilation fails. It also clarifies that `reissue:true` may replace only `paper` and `scale`, which is behavior not captured by the annotations.

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 key purpose and precondition are front-loaded, and every clause carries relevant behavior. The single dense paragraph with semicolons and parentheticals is information-rich but somewhat harder to scan than it could be.

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?

For a complex transformation tool with no output schema, the description supplies the return shape (`ok`, `changed`, `changes`, `unresolved`, `source`), failure behavior, unresolved handling, and stage-specific constraints. That is enough for an agent to understand both invocation and result semantics.

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 coverage is 100%, so baseline is already strong. The description adds useful semantics for `only` by naming the stages and default order, and for `reissue` by limiting replacement to `paper`/`scale` when the drawing does not fit them.

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 description states a specific action and resource: completing a plan for export by adding missing furniture and sheet statements. It also distinguishes the two stages and ties invocation to `lint` being clean, though it does not explicitly contrast itself with other similar siblings such as `complete` or `fix`.

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?

It gives clear invocation context: run it once `lint` is clean, and `only` can restrict execution to a single stage. It does not enumerate when not to use it or compare it directly against every alternative, so it stops short of a full routing guide.

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