Skip to main content
Glama

Diff Spec Versions

diff_spec_versions
Read-onlyIdempotent

Diff two versions of a specification at the NORMATIVE level: which requirements were added, removed, or reworded. Not a textual diff — a clause that merely moved page or was recased counts as unchanged.

Args:
    spec_base: Spec identity without the version, e.g. "38331" or "23501"
    from_version: Older version label, e.g. "j20" (default: the second-newest in the corpus)
    to_version: Newer version label, e.g. "j30" (default: the newest in the corpus)
    obligation: Only report changes at this strength — "must", "must_not", "should", "should_not", "may"
    limit: Max requirements to list per bucket (default: 25)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
spec_baseYes
obligationNo
to_versionNo
from_versionNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark this as read-only, idempotent, and non-destructive. The description adds meaningful semantics: the diff operates at a normative level (ignoring page moves/casing) and applies default version selection, which the agent could not infer from annotations alone.

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?

The description is two short paragraphs: a clear behavioral summary followed by a compact Args block. Every sentence adds information without redundancy, making it highly efficient.

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?

Given the tool's complexity and a present output schema, the description adequately explains the core behavior, parameter semantics, and version defaults. Minor omissions like defining 'buckets' are covered by the output schema and overall context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions are completely absent (0% coverage), so the description carries full responsibility. It defines every parameter with examples (spec_base), allowed values (obligation), and defaults (from_version, to_version, limit), exceeding what the schema provides.

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?

The description states a specific verb ('Diff') and resource ('two versions of a specification') at the NORMATIVE level, listing exactly what changes are reported (added, removed, reworded). It further distinguishes itself from a textual diff, making the purpose unambiguous.

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?

The description clarifies it is not a textual diff and defines what counts as unchanged, giving when-not guidance. It also explains defaults for from_version/to_version. However, it does not explicitly name alternative sibling tools, so it falls short of full alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.8/5.0
Disambiguation4/5

Tools are largely distinct but there are clusters of similar functionality, such as multiple search mechanisms (search_specifications, semantic_search, get_requirements with a search parameter) and reference-graph tools (get_spec_references, get_spec_dependents, get_relationship_graph). Descriptions do differentiate them, but an agent could still be uncertain which to use for a given query.

Naming Consistency4/5

Most tool names follow a snake_case verb_noun pattern (e.g., list_documents, search_specifications, get_requirements). However, semantic_search is adjective_noun rather than verb_noun, and get_database_stats is a generic outlier among the spec-focused tools. Overall the pattern is consistent with minor deviations.

Tool Count4/5

With 17 tools, the set is slightly above the ideal 3-15 range but not excessive for the breadth of functionality: search, metadata, requirements, test generation, relationships, and schemas. Each tool has a defined role, and the count feels warranted for the domain.

Completeness4/5

The tool set covers the core workflow well: discovering specs (search_specifications, list_documents), retrieving content (get_document_content, get_requirements), analyzing relationships (get_spec_references, get_spec_dependents), and generating tests (build_cross_spec_suite, generate_tests). Minor gaps exist, such as the lack of a direct tool to fetch a requirement's full surrounding clause (workaround via get_document_content), but no critical dead ends.

Resources