Skip to main content
Glama

bisect

Identify the first commit in a good-to-bad ref range that fails a test command, test multiple commits in parallel, and optionally start a fix job.

Instructions

First commit in good_ref..bad_ref that fails test_cmd, testing up to parallelism commits at once. auto_fix: start a fix job.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "good_ref": "<good_ref>",
      "bad_ref": "<bad_ref>",
      "test_cmd": "<test_cmd>"
    },
    "name": "bisect"
  }
}

Input Schema

NameRequiredDescriptionDefault
repoNo
bad_refYes
auto_fixNo
good_refYes
test_cmdYes
parallelismNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations supplied, the description carries the full burden. It does disclose that commits are tested in parallel (up to parallelism at once) and that auto_fix starts a fix job, but it omits whether the working tree is mutated or left checked out, whether test_cmd runs arbitrary shell code, expected duration, and whether the call blocks or returns a job handle.

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?

Two compact sentences with the core behavior front-loaded and the side-effect option trailing. It is efficient, though the fragment-style 'auto_fix: start a fix job' is terse enough to be slightly ambiguous about what 'start a fix job' returns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with no annotations and no output schema, the description is thin: it never says what the result looks like (failing commit hash, exit info, job id), leaves 'repo' undocumented, and does not clarify whether the call is synchronous or asynchronous when auto_fix is set.

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 0%, so the description must compensate; it explains good_ref/bad_ref as a commit range, test_cmd as the failing test, parallelism as concurrent commits tested, and auto_fix as triggering a fix job. The 'repo' parameter is completely unaddressed, and no format expectations (ref syntax, defaults) are given for the covered parameters.

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 states a specific behavior: it locates the first commit in the good_ref..bad_ref range whose test_cmd fails, which is a concrete verb+resource combination an agent can recognize as a bisect operation. It does not, however, differentiate itself from siblings such as 'inspect', 'status', or 'review', so sibling disambiguation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no prerequisites (clean working tree, valid refs, repo working copy state), and no named alternative for e.g. simply running a test once versus bisecting. The only hint is the auto_fix aside, which tells the agent a fix job can be started but not when to choose it.

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