Skip to main content
Glama

Fix merge checks

get_fix_verification
Read-onlyIdempotent

Check whether a fix attempt's PR passes every merge gate on its current head commit, and see which checks are still unproven before merging.

Instructions

Return whether one fix attempt's PR is proven to work on its current head commit (ADR 0035): gates in order review (Opus review says merge), ci (every check green; a stopped test machine is pending, not a failure), fail_to_pass (the host's Mushi verify check: a changed test fails without the fix and passes with it; not_set_up until .github/workflows/mushi-verify.yml exists), protected (no deleted or weakened tests, no test skips or lint/type suppressions added, no CI config or lockfile change, no protected path), budget (small enough to merge on its own) and second_review (a second model family; runs only after the others pass). Each gate is { id, status (pass | fail | pending | unavailable | not_set_up), label, detail (what to do when it is not pass), evidence }. Also passed, secondJudge (summary and findings are model output from untrusted input), autoMerge { state (none | eligible | merged | skipped | failed), detail }, and regressions after a Mushi merge [{ signal (ci_failed_on_merge | report_reopened | new_report_in_changed_file), revertState, revertPrUrl }]. Returns { headSha, gates, passed, secondJudge, autoMerge, regressions, mergedAt, mergeSha, evaluatedAt }; 404 NOT_FOUND until Mushi first checks the fix (every 10 minutes for open cloud-agent PRs). Read-only. Use before merge_fix to see what is still unproven; use get_fix_timeline for the attempt's full lifecycle.

Input Schema

NameRequiredDescriptionDefault
fixIdYesfix_attempt UUID (`fix_id` is accepted too.)
projectIdNoProject UUID — required for org-scoped keys with multiple projects. (`project_id` is accepted too.)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.17

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, and the description reinforces 'Read-only' while adding genuinely new behavioral facts: gate evaluation order, that second_review runs only after the others pass, that a stopped test machine is pending rather than a failure, that not_set_up persists until the workflow file exists, and that 404 is returned until the first poll (every 10 minutes). It does not cover rate limits or pagination, but coverage is strong.

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

Conciseness3/5

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

Purpose is front-loaded, but the body is one very long run-on sentence enumerating six gates, followed by a partial field listing that is then largely repeated in the 'Returns {...}' sentence. The gate semantics earn their space; the duplicated return-shape enumeration does not.

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, and the description compensates fully by naming every returned field, defining the gate status enum values, and explaining secondJudge trust level and autoMerge/regressions substructure. An agent has everything needed to call this and interpret the response.

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 two parameters (fixId, projectId, including snake_case aliases) are fully documented in structured data. The description only implies the targeting of 'one fix attempt's PR' and adds no syntax or format detail beyond the schema, so baseline 3 applies.

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 ('Return whether one fix attempt's PR is proven to work on its current head commit') and scopes it precisely to a single fix attempt's merge-readiness. It is clearly distinguishable from merge_fix (the action) and get_fix_timeline (the lifecycle) by explicit naming.

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?

Ends with explicit routing: 'Use before merge_fix to see what is still unproven; use get_fix_timeline for the attempt's full lifecycle.' It also gives the when-not condition implicitly via the 404 note ('404 NOT_FOUND until Mushi first checks the fix').

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