Skip to main content
Glama

Analyze Repository Blast Radius

astrix_get_blast_radius
Read-onlyIdempotent

Analyze staged and unstaged Git diff against HEAD to identify changed symbols, reverse-dependency impact, affected file ranges, and selected tests before targeted test runs; reads repo state only.

Instructions

Analyze the current staged and unstaged Git diff against HEAD in the opened repository and return changed symbols, their reverse-dependency impact, selected tests, and changed-file ranges. Use this before astrix_run_impacted_tests to inspect what the diff affects; this tool only reads repository state and does not run tests. It accepts no arguments.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
impactYes
changesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.3.3
    • changedInput schema / additionalProperties
      Previous value: -trueNew value: +false
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "changes": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "deleted": {
      +            "description": "Whether this diff deletes the file.",
      +            "type": "boolean"
      +          },
      +          "new_file": {
      +            "description": "Whether this diff adds the file.",
      +            "type": "boolean"
      +          },
      +          "old_path": {
      +            "description": "Previous path for a rename, when present.",
      +            "type": "string"
      +          },
      +          "path": {
      +            "description": "Changed repository-relative path.",
      +            "type": "string"
      +          },
      +          "ranges": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "end": {
      +                  "description": "Last changed line in the new file.",
      +                  "type": "integer"
      +                },
      +                "start": {
      +                  "description": "First changed line in the new file.",
      +                  "type": "integer"
      +                }
      +              },
      +              "required": [
      +                "start",
      +                "end"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "path",
      +          "ranges"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "impact": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "changed_symbols": {
      +          "description": "Symbols whose source lines overlap the current diff.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "impacted_symbols": {
      +          "description": "Symbols in the reverse-reference closure of changed symbols.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "tests": {
      +          "description": "Test symbols selected by the blast-radius analysis.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "impact",
      +    "changes"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description still adds real value by stating the analysis scope (staged + unstaged diff vs HEAD) and reinforcing that no tests are executed, which is the key behavioral distinction from the sibling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: what it returns, when to use it, and the no-argument constraint. Nothing is redundant and the scope statement is front-loaded.

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?

For a zero-arg read-only analysis tool with an output schema present, everything an agent needs is here: the input diff basis, the returned artifacts, and the routing relationship to the test-running sibling.

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?

Zero-parameter tool, which is baseline 4. The description confirms 'It accepts no arguments', aligning with the empty schema and preventing an agent from trying to pass a repo path or diff range.

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?

Names a specific verb and resource ('Analyze the current staged and unstaged Git diff against HEAD') and enumerates the outputs (changed symbols, reverse-dependency impact, selected tests, changed-file ranges). This clearly distinguishes it from astrix_run_impacted_tests, which runs tests rather than inspecting the diff.

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?

Explicitly gives ordering guidance: 'Use this before astrix_run_impacted_tests to inspect what the diff affects', and rules out the adjacent behavior with 'does not run tests'. Missing only an explicit statement of when not to use it (e.g., clean working tree or committed-range analysis).

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