Skip to main content
Glama

gograph_untested

Read-onlyIdempotent

Find production functions and methods lacking an exact transitive static path from any test in one graph sweep to identify untested code for test census or pre-release hardening.

Instructions

Sweep the full graph in one pass and return called production functions and methods without an exact transitive static path from any test. The MCP server checks freshness first. Precise direct calls and proof-backed concrete interface receivers are exact; open CHA or parser-only paths propagate possible to descendants, which remain visible with test_resolution=possible and possible_test_count. Repeatable CLI --exclude globs map to the MCP exclude string array and match repository-relative source paths lexically. This is static attribution, not runtime coverage proof. Read-only; no side effects. WHEN TO USE: During test census or pre-release hardening; it replaces N forward coverage or direct gograph_tests probes. NOT TO USE: For running tests or proving branch execution. RETURNS: JSON rows sorted by caller_count with stable_id, name, kind, file, line, caller_count, package, test_resolution, and optional possible_test_count.

Input Schema

NameRequiredDescriptionDefault
pkgNoOptional package name substring to filter results (e.g. 'cli', 'search')
topNoLimit results to top N by caller count (0 = all, default)
rootNoAbsolute path of the checkout you are working in (your cwd or git worktree). Must be this server's repository or one of its git worktrees; the answer then comes from that checkout's own graph. A path elsewhere is refused. Alias: cwd. Omit only when the configured checkout is the one you mean.
excludeNoRepository-relative path globs to exclude; use prefix/** for all descendants
intentionNoTechnical rationale, required for analytical calls selecting an active session.
session_idNoCaller selector returned by session_create. Omission means an independent caller; never inherits server environment or another caller's session.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.7.18
    • addedInput schema / properties / intention
      Added value: +{
      +  "description": "Technical rationale, required for analytical calls selecting an active session.",
      +  "type": "string"
      +}
    • addedInput schema / properties / root
      Added value: +{
      +  "description": "Absolute path of the checkout you are working in (your cwd or git worktree). Must be this server's repository or one of its git worktrees; the answer then comes from that checkout's own graph. A path elsewhere is refused. Alias: cwd. Omit only when the configured checkout is the one you mean.",
      +  "type": "string"
      +}
    • addedInput schema / properties / session_id
      Added value: +{
      +  "description": "Caller selector returned by session_create. Omission means an independent caller; never inherits server environment or another caller's session.",
      +  "type": "string"
      +}
  2. Changed1 schema field changedv1.6.2
    • addedInput schema / properties / exclude
      Added value: +{
      +  "description": "Repository-relative path globs to exclude; use prefix/** for all descendants",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  3. Changed1 schema field changedv1.5.6
    • changedInput schema / properties / top / type
      Previous value: -"number"New value: +"integer"
  4. Addedv1.4.78

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing a freshness precheck, the exact-vs-possible resolution model with propagation to descendants, the visibility of possible rows via test_resolution and possible_test_count, and the static-vs-runtime attribution caveat. Only 'Read-only; no side effects' restates annotations, and it is a minor fraction of the text.

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-loaded with the core action, then semantics, then WHEN/NOT TO USE, then RETURNS — a clean structure with no filler sentences. It is dense and technical but each clause carries information; slightly more compression of the semantic-model sentences would be possible.

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 6-parameter tool with no output schema, the RETURNS block enumerates the JSON row fields and sort order, and the exact/possible distinction is fully explained. The one gap is that session_id/intention caller-selection semantics are left entirely to the schema.

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 baseline is 3; the description still adds meaning by explaining that exclude globs match repository-relative source paths lexically and mirror repeatable CLI --exclude flags, plus the caller_count sort order implied for top. It does not, however, explain the root, session_id, or intention selection behavior.

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 scope ('Sweep the full graph in one pass') and a precise output concept ('called production functions and methods without an exact transitive static path from any test'). This is clearly distinguishable from siblings like gograph_tests, gograph_callers, and gograph_coverage.

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 ('During test census or pre-release hardening; it replaces N forward coverage or direct gograph_tests probes') and NOT TO USE ('For running tests or proving branch execution'), naming both the alternative tools and the condition that selects them.

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