Skip to main content
Glama

verify_fix

Check a proposed diff for fix completeness before committing. Returns a verdict on untouched references, test impact, and risk level to confirm the root cause is addressed.

Instructions

Check fix completeness against a raw unified diff before committing.

Runs completeness + test-impact analysis on the proposed diff and returns a verdict. Iterate until verdict == "complete" (no untouched call sites). "complete" covers the root cause but does not imply a test exists - a complete but untested fix comes back at risk_level "medium" with a note, so check risk_level/notes and add the test before committing.

Returns: {verdict: "complete"|"partial"|"risky", symbols_fixed: [...], untouched_references: [...], tests_to_run: [...], adds_test: bool, risk_level: "low"|"medium"|"high", notes: [...]}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
baseNo
repoYes
proposed_diffYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.1

TDQS

A3.7/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 it discloses important behavior: the exact return object, the meaning of 'complete', the risk_level caveat, and the need to inspect notes. It does not explicitly mention side effects or auth needs, but the tool reads as an analysis-only check.

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 description is front-loaded with a one-line purpose and then gives necessary operational detail, including a return schema equivalent. It is slightly dense but every sentence adds value and there is no filler.

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 description is strong for an analysis tool: it explains when to invoke it, how to interpret the verdict, what to check before committing, and what the result shape is. The main gap is the undocumented base parameter and the lack of explicit guidance on prepasing proposed_diff beyond calling it a raw unified diff.

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 description coverage is 0%, so the description must compensate, but it only clarifies proposed_diff as a raw unified diff. The required repo and optional base parameters receive no explanation, and base is never mentioned, leaving the agent to guess its role.

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 names a specific action and resource: checking fix completeness against a raw unified diff and returning a verdict. It is clear and distinct from a generic 'check', but it does not explicitly contrast itself with the sibling check_completeness tool, so sibling differentiation is incomplete.

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?

The description gives clear operational context: use this before committing and iterate until verdict is 'complete'. It also explains what to do for a complete-but-untested fix, but it does not state exclusions or name alternatives among siblings.

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