Skip to main content
Glama

git_root

Run a whitelisted git verb at the project root with locking and journaling, enforcing merge guards that require tests and clean team reviews.

Instructions

Run one whitelisted git verb at the project root, under the project's git lock and, for a verb that changes the repository, the repository's own lock, and journal the step it completes. A merge --ff-only refuses a head without a tested step (unless testCommand is none), and for a team task in a gating mode, without every seat's clean review or a waiver. The verbs are worktree add -b, worktree remove, branch -d, merge --ff-only, rebase --abort, and the read-only status, log, rev-parse, rev-parse --abbrev-ref HEAD, merge-base, branch --list and worktree list; a verb that journals a step names the slug whose journal it belongs to.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
argsYes
slugNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

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 behavioral burden and does so well: it discloses lock acquisition (project lock plus repository lock for mutating verbs), step journaling, the whitelist enforcement, and the review/test preconditions that cause merge --ff-only to refuse. It stops short of describing the refusal error shape or return format, keeping it from a 5.

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 core action is front-loaded in the first clause and every subsequent clause adds real constraint (locks, journaling, gating, verb whitelist). The first sentence is dense and slightly run-on, but 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?

For a mutation-capable tool with no annotations, no output schema, and 0% schema description coverage, the description supplies the critical missing context: allowed verbs, locking, journaling, and refusal conditions. Only the response/error shape and the exact args format remain undocumented.

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 coverage is 0% with two params, so the description must compensate. It clarifies that a step-journaling verb must name the slug whose journal it belongs to, which explains the slug parameter, and the verb whitelist implicitly defines the args array. However, it never explicitly states that args carries the verb and its arguments, nor the expected ordering/format.

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?

States a specific action and resource: run one whitelisted git verb at the project root, and enumerates the permitted verbs, so an agent knows precisely what this tool executes. It does not, however, differentiate itself from the sibling git_mutate or run_command, leaving overlap unresolved.

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

Usage Guidelines3/5

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

The description implies usage constraints (exactly one whitelisted verb per call, specific gating conditions for merge --ff-only, journaling only for step verbs), which is more than nothing. But it never says when to choose this tool over git_mutate or run_command, nor does it state exclusions, so routing is left to inference.

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