Skip to main content
Glama

verify_fix

Check whether a proposed fix resolved a test by splitting its run history at the baseline failure and comparing subsequent results, returning statuses like fixed, not_fixed, or unstable.

Instructions

Check whether a fix actually held for one test, against the run you saw when you proposed it. Splits the test's run history at that baseline and compares after against before, returning "fixed" (passing with no retries since), "not_fixed" (still failing with the same error), "changed_failure" (still failing, but a different error — a new investigation, and only when every failure since carried a comparable fingerprint), "still_failing" (still failing, but the errors cannot be compared, so neither same nor different can be claimed), "unstable" (passing only after retries, which is not fixed), "no_runs_since_baseline", or "baseline_not_found" (the run id is not one this test executed in). Call this after a new run lands. An unchanged error means the fix missed, not that the test is flaky. The baseline run must be one this test actually executed in — an id from another project or another test is rejected rather than answered.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID (e.g. project_<id>)
testcase_nameYesFull test title, same identifier debug_testcase takes
baseline_run_idYesThe run you saw the failure in when you proposed the fix
suite_file_pathNoSpec file path — only needed when the title is shared across files

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.3

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden, and it does so thoroughly: it explains the comparison logic, the meaning of each returned status, the fingerprint requirement for 'changed_failure', and the important interpretation that an unchanged error means the fix missed rather than flakiness. It also discloses rejection behavior for invalid baselines.

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 long but front-loaded with the core question and organized around a clear list of possible outcomes. It is dense and mostly earns its length, though the baseline-run constraint is stated twice in slightly different ways, adding minor redundancy.

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?

There is no output schema, so the description must explain return semantics itself; it does, covering all seven possible statuses and their conditions. It also covers the key input constraint and the post-condition timing, leaving no critical gap for an agent deciding how to interpret the result.

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 the baseline is 3, but the description adds meaningful semantics beyond the schema for baseline_run_id: it must be a run the test actually executed in, and ids from other projects/tests are rejected. This extra constraint goes beyond the schema's 'run you saw the failure in' and justifies a 4.

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?

The description opens with a specific verb and resource: check whether a fix held for one test against the baseline run. It also enumerates all possible result classifications, which makes the tool's purpose unmistakable and clearly distinct from sibling debugging or flake-analysis 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?

It gives clear timing guidance ('Call this after a new run lands') and states a hard prerequisite: the baseline run must be one the test actually executed in, otherwise the call is rejected. It does not explicitly name alternatives or say when not to use it, so it stops short of a 5.

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