Skip to main content
Glama

Edit a project data file

cm_edit
Destructive

Edit project file keys in place with automatic backup and logging, changing only specified lines. Requires an idle simulation; reload the test run afterward.

Instructions

Change keys in a project file in place (backed up first, logged; only the edited lines change). Requires an idle simulation; load the test run again afterwards.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesKind of project data; selects the folder below <project>/Data
nameYesFile name relative to the kind's folder
overridesYesKeys to set, e.g. {'Road.FName': 'SKIDPAD.rd5'}; a null value removes the key

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructive=true/readOnly=false, but the description adds valuable behavioral detail beyond them: the file is 'backed up first', the edit is 'logged', and 'only the edited lines change'. Because it is destructive, the backup disclosure is important context that reframes the annotation. It adds no return-format or permission information, so not a 5.

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

Conciseness5/5

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

Two dense sentences, front-loaded with the action ('Change keys in a project file in place'), with the backup/logging behavior and the idle-simulation prerequisite each occupying a distinct clause. Nothing is wasted.

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?

For a destructive 3-param edit tool with an output schema present, the description covers the critical behavioral facts an agent needs: backup, logging, minimal-diff, and the idle precondition. It does not spell out reversibility beyond backup or the post-edit reload mechanics, leaving a small gap.

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 kind, name, and overrides (including the null-removes-key semantics). The description's 'change keys' loosely maps to overrides but adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.

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?

States a specific verb and resource: 'Change keys in a project file in place', which clearly denotes an in-place mutation of project data. It is distinct from read-oriented siblings like cm_read/cm_list, but it does not name any alternative editor (e.g. cm_model_set, cm_restore) to disambiguate among the many mutation tools.

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?

'Requires an idle simulation; load the test run again afterwards' supplies a concrete precondition and a required follow-up action, which is real usage context. It stops short of explicit when-not-to-use or named alternatives, so it is clear context without exclusions.

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