Skip to main content
Glama

diana_model_diff

Read-only

Compare two model states to identify added or removed items and parameter changes with old and new values, without moving the change baseline.

Instructions

Compare two states of a model: items added/removed and parameters with old -> new values.

Each side is "current" (the project open in DianaIE, now), "latest" (the last stored snapshot of that project, e.g. from diana_changes or diana_model_snapshot), a snapshot id or label, or the path of a saved .dpf (read by a batch DianaIE). Comparing does not move diana_changes' baseline.

Args: before: the older state. after: the newer state. max_changes: changes to return.

Input Schema

NameRequiredDescriptionDefault
afterNocurrent
beforeNolatest
max_changesNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.10.0

TDQS

A4.1/5.0
Behavior4/5

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

Goes beyond the readOnlyHint/openWorldHint annotations by disclosing that 'latest' resolves via diana_changes or diana_model_snapshot, that .dpf paths are read by a batch DianaIE instance (implying extra process cost), and that the operation is non-mutating with respect to the changes baseline. It does not say whether an oversized diff is silently truncated or flagged, which is the main remaining behavioral blind spot.

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?

The core comparison is front-loaded in the first sentence, followed by an Args block that maps cleanly to the three parameters. The middle paragraph is dense and slightly run-on with its parenthetical multi-line clause, but no sentence is padding.

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?

An output schema exists, so return values needn't be described, and the read-only profile is covered by annotations. What remains thin is the truncation semantics for max_changes, the only element an agent could get wrong when calling this tool.

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?

With 0% schema description coverage, the description is the only source of parameter meaning, and it does real work by enumerating the accepted value forms for before/after and clarifying the older/newer ordering. However, max_changes is documented only as 'changes to return', leaving truncation behavior and the interaction with the default of 100 unexplained.

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 resource ('Compare two states of a model') and immediately names the result shape: items added/removed plus parameters with old -> new values. An agent can tell this apart from diana_changes (which tracks a baseline) and diana_model_summary (a single-state view) 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete guidance on what each side may be ('current', 'latest', a snapshot id or label, or a .dpf path) and notes that comparing does not move diana_changes' baseline, which implicitly separates it from the change-tracking sibling. It stops short of an explicit 'use X when Y' routing statement, so the choice against diana_changes or diana_model_snapshot must be inferred.

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