Skip to main content
Glama

fix_range

Rewrite an explicit line range for code outside a symbol, such as module-level config, a switch branch, or embedded markup. Prefer symbol edits when possible; stale ranges are rejected.

Instructions

Rewrite an explicit line range. The escape hatch for code that does not live inside a symbol — module-level configuration, a branch of a switch, markup embedded in the source. Prefer fix_symbol where one applies: line numbers move when earlier patches land, and a stale range is rejected rather than applied.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contextNo
end_lineYes1-based, inclusive.
file_pathYes
start_lineYes1-based, inclusive.
instructionYes
allow_secretsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.8

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 disclose a genuine behavioral trait: a stale range is rejected rather than applied, which tells the agent the operation is validated and fails safe. It also warns that line numbers shift after patches. It does not cover permissions, reversibility of the rewrite, or what allow_secrets gates, so it is strong but not complete.

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?

Three sentences, front-loaded with the action, then the use case, then the alternative and its rationale. No filler; every clause adds routing or safety information.

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?

Usage and sibling routing are covered thoroughly, but for a 6-parameter mutation tool with no annotations and no output schema, the 33% parameter coverage leaves real gaps. The meaning of instruction, context, and allow_secrets is never addressed, so an agent still cannot fully invoke it from this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% — start_line and end_line are documented in the schema, but context, instruction, and especially allow_secrets are undocumented in both places. The description adds no parameter-level meaning at all, and allow_secrets in particular is a security-sensitive parameter left entirely unexplained.

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 ('Rewrite an explicit line range') and immediately scopes it to code that does not live inside a symbol. It explicitly names the sibling fix_symbol and the condition under which that one is preferable, so an agent can distinguish the two without opening either schema.

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?

Gives explicit when-to-use ('module-level configuration, a branch of a switch, markup embedded in the source') and when-not ('Prefer fix_symbol where one applies'), along with the rationale (line numbers move when earlier patches land). This is unusually complete routing guidance.

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