Skip to main content
Glama

todo_history

Trace a TODO or FIXME through Git history to find the commit that last touched it, where it originated (including copies or moves), and when its text first appeared.

Instructions

Trace one TODO through history. Give location="src/app.py:42" (a line in the working tree) or text="TODO: remove after v2" (searched in all history). Reports the commit that last touched the line (blame -w -M), the blame origin with copy detection (-C -C: moved from another file?), and the commit where that text FIRST appeared (git log -S, or -G when regex=true) with later commits that changed its occurrence count. If a later commit only reworded or reformatted the line, first_appearance shows the true age. Needs a git repository.

Input Schema

NameRequiredDescriptionDefault
repoNo
textNo
limitNo
regexNo
locationNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With zero annotations the description carries the full burden, and it does well: it names the underlying git mechanics (blame -w -M, copy detection via -C -C, log -S / -G for regex), notes the repository prerequisite, and explains the subtle first_appearance behavior when a line was reworded later. It does not characterize read-only safety, error behavior when the repo is missing, or how limit affects results.

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?

Dense and front-loaded, with the core action first, then the two input modes, then the returned semantics. The parenthetical git flags are terse and informative rather than padding, though the single long paragraph could be split for readability.

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 tool is moderately complex (5 params, git-dependent behavior), but an output schema exists so return values need no explanation, and the description covers the hard parts: input formats, first-appearance semantics, and the repo requirement. Missing details are minor: which repo the repo param resolves to, what limit caps, and whether location and text can be combined.

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 0%, so the description must compensate, and it adds real meaning for three of five params: the exact location format "src/app.py:42", a text example, and the regex=true switch tied to git -G instead of -S. The repo and limit parameters (defaults null and 20) are left entirely unexplained, which is the main gap.

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?

"Trace one TODO through history" states a specific verb and resource, and the description immediately pins down the two ways to identify the TODO (a working-tree line vs. a text string searched across history). That distinguishes it clearly from siblings like list_todos or stale_todos, which enumerate rather than trace a single item.

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 explicit mode selection: use location= for a line in the working tree, text= for a string searched in all history, each with a concrete example. It also states the prerequisite "Needs a git repository." It does not name sibling tools or say when to prefer them over this one, which keeps it 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.