Skip to main content
Glama
Mipiti
by Mipiti

Decide Inventory Pair

decide_inventory_pair

Decide whether two threat-model inventory entries are the same asset or attacker, or distinct entities, recording a judgment that overrides pair checks until either entry changes.

Instructions

Decide that two entries of a model's inventory are, or are not, one entity. Mutating; creates no model version; a judgment.

The decision is bound to both entries' texts: while it stands it replaces the checks' answers for the pair, and an edit of either entry voids it. same keeps the pair shown until a person removes one of the two (remove_entity); nothing is merged. Refused 422 two_elements for two assets that are each an element of the behavioural model (two elements are two things), 422 same_entity, 404 unknown_entity.

A program's decision is refused with 403 and an escalation_id unless the workspace's delegation policy names inventory_pair_decided. Do not retry: report the escalation_id and poll list_proposals.

Returns {pair, entity_kind, verdict, decided_at, objectives}, objectives counting those resting on the two entries.

Input Schema

NameRequiredDescriptionDefault
aYesOne entry's id (e.g. "A-12").
bYesThe other entry's id.
verdictYes``same`` or ``different``.
model_idYesID of the threat model.
rationaleNoWhy (at most 2000 characters).
entity_kindYes``asset`` or ``attacker``.
server_versionYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.91.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: it discloses that the decision is bound to both entries' texts and is voided by an edit, that 'same' merges nothing, and it enumerates specific failure modes (422 two_elements, 422 same_entity, 404 unknown_entity) plus a 403 escalation path with a 'do not retry, poll list_proposals' instruction. This is exactly the behavioral context an agent needs before invoking a mutation.

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 opening line front-loads the core meaning (verb, resource, and 'mutating; creates no model version; a judgment'), which is strong. The remainder is dense with useful error/auth detail, though the parenthetical aside about 'two elements are two things' and heavy backtick formatting add minor noise.

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?

An output schema exists, yet the description still summarizes the return shape ({pair, entity_kind, verdict, decided_at, objectives}), and it covers mutation semantics, persistence rules, and error codes. Given the tool's complexity, nothing essential for a correct invocation is missing.

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 high (86%), so the schema documents most parameters and the baseline would be 3. The description nevertheless adds real meaning beyond the enum by explaining the downstream consequence of the 'same' verdict (pair stays shown until remove_entity; nothing merged), which the schema's '``same`` or ``different``' text does not convey.

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 (decide) plus the exact resource (two entries of a model's inventory) and the judgment being made (same/different entity). It readily distinguishes itself from siblings like remove_entity and get_inventory_judgements by clarifying that this records a judgment rather than performing a deletion or a read.

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?

Clearly conveys context—this is a mutating judgment that creates no model version, and it points to remove_entity as the way to actually drop an entry when the verdict is 'same'. It does not, however, explicitly compare against sibling judgment tools (e.g., judge_objective, decide_reconciliation_candidate) or state exclusions beyond the 422 element-of-behavioural-model case.

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

Deploy Server

Other Tools