Skip to main content
Glama

gograph_changes

Read-onlyIdempotent

Compare Go declaration fingerprints to identify changed declarations after edits without flagging every symbol in an edited file. Read-only analysis for impact and review.

Instructions

Compare Go declaration fingerprints, including bodies, without marking every symbol in an edited file modified. Without git_ref, inspects trusted persisted graph.json without refreshing, or the startup fallback if no usable artifact exists. With git_ref, refreshes and extracts a confined declaration baseline without compiling application code. Existing but deselected files are excluded, not deleted; unsafe inputs and parse failures produce diagnostics, never deletion proof. Missing legacy declaration fingerprints produce unknown. Read-only analysis. WHEN TO USE: After editing to identify changed declarations before impact/review. NOT TO USE: For line-level diffs or a complete census when evaluation is partial/cannot_evaluate. RETURNS: Native gograph.changes.v1 with complete/partial/cannot_evaluate, diagnostics, changed_files, and new/modified/deleted/excluded/unknown symbol rows; CLI uses the same value and exits 2 for incomplete evaluation. Uncommitted modes compare declarations against HEAD, including selected untracked Go files. Current-graph consumers refuse incomplete comparisons, deleted declarations requiring historical caller evidence, and missing/ambiguous graph identities. Inspect changes --git REF for the declaration census; rebuild before traversing newly added symbols.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
git_refNoOptional git reference to compare against (e.g., 'main', 'HEAD~5', 'v1.4.50')

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.5.3
  2. Removedv1.5.3
  3. First observedv1.0.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover the read-only/idempotent safety profile, and the description layers rich additional context: behavior with vs without git_ref, that deselected files are excluded rather than deleted, that unsafe inputs/parse failures yield diagnostics and never deletion proof, and that missing legacy fingerprints resolve to 'unknown'. This is exactly the beyond-annotations behavioral detail the dimension rewards.

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?

Front-loads the core purpose and uses clear WHEN/NOT/RETURNS sectioning, so structure is strong. However it is quite long and dense for a one-parameter tool, with some jargon-heavy clauses (native gograph.changes.v1, current-graph consumers) that could be trimmed.

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 carries the full return-value burden and discharges it well by enumerating the complete/partial/cannot_evaluate states, diagnostics, changed_files, and the symbol-row categories, plus CLI exit-code semantics. For a complex comparison tool this is thoroughly complete.

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 single git_ref parameter is already documented, establishing a baseline of 3. The description adds genuine meaning by explaining the semantic split between omitting git_ref (trusted persisted graph, no refresh) and supplying it (refresh and confined baseline extraction), which the schema alone does not convey.

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 lead sentence states a specific verb and resource: compare Go declaration fingerprints including bodies, with the key differentiator of not marking every symbol in an edited file as modified. It is distinguishable from siblings like gograph_stale and gograph_impact, though the opening clause is dense and takes a moment to parse.

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?

Explicit WHEN TO USE ('After editing to identify changed declarations before impact/review') and NOT TO USE ('For line-level diffs or a complete census when evaluation is partial/cannot_evaluate') sections route the agent precisely, and it names a concrete alternative workflow ('Inspect changes --git REF'). Nothing 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.