Skip to main content
Glama
RepoAssay

Repo Test Architect

Get Audit Graph

get_audit_graph
Read-onlyIdempotent

Validates and returns an existing audit/v1 artifact without rescanning a repository, preserving its supplied contents for downstream review or reuse.

Instructions

Validate and return an existing audit/v1 artifact unchanged; this does not scan a repository. Use audit_repo or analyze_repository for repository discovery.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
auditYesAn audit/v1 artifact.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
risksYes
profileYes
skippedYes
recommendedYes
schemaVersionYes
coveredButRiskyYes
untestedCandidatesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "auditTarget": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "existingTestEvidence": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "kind": {
      +                "enum": [
      +                  "filename-convention",
      +                  "direct-relative-import",
      +                  "referenced-relative-reexport",
      +                  "tsconfig-path-import",
      +                  "package-entry-import",
      +                  "bounded-dependency",
      +                  "browser-route-match",
      +                  "csharp-symbol-reference",
      +                  "csharp-test-helper",
      +                  "swift-symbol-reference",
      +                  "python-module-import",
      +                  "python-package-reexport",
      +                  "python-pytest-fixture",
      +                  "python-test-client-route",
      +                  "jvm-symbol-reference",
      +                  "go-symbol-reference",
      +                  "go-source-dependency",
      +                  "rust-symbol-reference",
      +                  "ruby-constant-reference",
      +                  "php-symbol-reference",
      +                  "elixir-module-reference"
      +                ]
      +              },
      +              "strength": {
      +                "enum": [
      +                  "naming",
      +                  "direct",
      +                  "referenced",
      +                  "indirect"
      +                ]
      +              },
      +              "testPath": {
      +                "type": "string"
      +              },
      +              "usage": {
      +                "enum": [
      +                  "called",
      +                  "asserted"
      +                ]
      +              },
      +              "viaUsage": {
      +                "enum": [
      +                  "called",
      +                  "asserted"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "testPath",
      +              "kind",
      +              "strength"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "existingTestPaths": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "kind": {
      +          "type": "string"
      +        },
      +        "maintenanceCost": {
      +          "maximum": 10,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "path": {
      +          "type": "string"
      +        },
      +        "reasons": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "recommendedTestLevel": {
      +          "enum": [
      +            "unit",
      +            "integration",
      +            "component",
      +            "ui",
      +            "none"
      +          ]
      +        },
      +        "risk": {
      +          "enum": [
      +            "low",
      +            "medium",
      +            "high"
      +          ]
      +        },
      +        "riskReductionScore": {
      +          "maximum": 10,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "signals": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "testability": {
      +          "enum": [
      +            "low",
      +            "medium",
      +            "high"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "id",
      +        "path",
      +        "kind",
      +        "signals",
      +        "risk",
      +        "testability",
      +        "recommendedTestLevel",
      +        "riskReductionScore",
      +        "maintenanceCost",
      +        "reasons",
      +        "existingTestPaths"
      +      ],
      +      "type": "object"
      +    },
      +    "skippedTarget": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "id": {
      +          "type": "string"
      +        },
      +        "kind": {
      +          "type": "string"
      +        },
      +        "maintenanceCost": {
      +          "maximum": 10,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "path": {
      +          "type": "string"
      +        },
      +        "preferredCoveragePath": {
      +          "type": "string"
      +        },
      +        "reason": {
      +          "type": "string"
      +        },
      +        "riskReductionScore": {
      +          "maximum": 10,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "signals": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "id",
      +        "path",
      +        "kind",
      +        "signals",
      +        "riskReductionScore",
      +        "maintenanceCost",
      +        "reason"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "$id": "https://repo-test-architect.local/schemas/audit-v1.schema.json",
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "coveredButRisky": {
      +      "items": {
      +        "$ref": "#/$defs/auditTarget"
      +      },
      +      "type": "array"
      +    },
      +    "profile": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "architectures": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "blockers": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "confidence": {
      +          "enum": [
      +            "low",
      +            "medium",
      +            "high"
      +          ]
      +        },
      +        "detectedConventions": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "existingTestLocations": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "languages": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "packageManagers": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "root": {
      +          "type": "string"
      +        },
      +        "setupSignals": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "testCommand": {
      +          "type": "string"
      +        },
      +        "testFrameworks": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "root",
      +        "languages",
      +        "packageManagers",
      +        "testFrameworks",
      +        "architectures",
      +        "detectedConventions",
      +        "existingTestLocations",
      +        "setupSignals",
      +        "confidence",
      +        "blockers"
      +      ],
      +      "type": "object"
      +    },
      +    "recommended": {
      +      "items": {
      +        "$ref": "#/$defs/auditTarget"
      +      },
      +      "type": "array"
      +    },
      +    "risks": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "schemaVersion": {
      +      "const": "audit/v1"
      +    },
      +    "skipped": {
      +      "items": {
      +        "$ref": "#/$defs/skippedTarget"
      +      },
      +      "type": "array"
      +    },
      +    "untestedCandidates": {
      +      "items": {
      +        "$ref": "#/$defs/auditTarget"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "schemaVersion",
      +    "profile",
      +    "untestedCandidates",
      +    "coveredButRisky",
      +    "recommended",
      +    "skipped",
      +    "risks"
      +  ],
      +  "title": "Repo Test Architect Audit",
      +  "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. The description adds real value beyond them: 'return unchanged' discloses passthrough/no-mutation semantics, and 'does not scan a repository' rules out a costly side effect an agent might otherwise assume. It does not mention error behavior for invalid artifacts, keeping it short of 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.

Conciseness5/5

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

One sentence plus one routing sentence, zero waste, with the core behavior front-loaded before the alternatives.

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?

With an output schema present, annotations covering safety, and a fully documented single parameter, nothing an agent needs in order to call this correctly is missing. The negative-scope statement closes the main ambiguity against its siblings.

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 100% and the single 'audit' parameter is documented as an audit/v1 artifact, so the description's 'audit/v1 artifact unchanged' adds only marginal framing beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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 pair (validate and return) and a specific resource (an audit/v1 artifact), and explicitly disambiguates from the sibling repository-discovery tools. An agent can distinguish it from audit_repo/analyze_repository without opening any schema.

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?

Explicitly states what this tool is NOT for ('this does not scan a repository') and names the two alternatives to use instead. The when-not and the alternative routing are both spelled out.

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