Skip to main content
Glama
Mipiti
by Mipiti

Declare Control Delta

declare_control_delta

Prepare the declaration of a control's delta as served: the act that makes it the control's specification. Declaring is a person's act, never a program's.

Instructions

Prepare the declaration of a control's delta as served: the act that makes it the control's specification. Declaring is a person's act, never a program's.

Without confirm (the default) this is the preview, and nothing is written: the declaration the given spans and resolutions make, its declaration_hash, each edit in words beside its quotes, the second reading's differences and those still open, the text no quote reaches (unquoted), the spans the text's notes suggest as committing to nothing, what declaring does, and blocking (what stops it). Relay the preview to the person: the differences, and which text commits to nothing, are theirs to decide.

With confirm and the declaration_hash previewed, a program's call is always refused with 403 and an escalation_id, whatever the workspace delegates: it is parked for a person, who sees what it declares and accepts or rejects it. Do not retry: report the escalation_id and poll list_proposals. A parked declaration is withdrawn once the delta it names changes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
confirmNoTrue to declare (a person's act).
model_idYesID of the threat model.
control_idYesID of the control.
placementsNoJSON array of ``{"item", "index", "span", "start", "end"}`` naming which occurrence a repeated quote stands at.[]
resolutionsNoJSON array of ``{"start", "end", "choice"}``, one per difference, in order: ``choice`` is ``draft``, ``second`` or ``written`` (with ``edits``).[]
nothing_spansNoJSON array of ``{"start", "end"}`` spans of the control's text, in code points, that commit to nothing.[]
server_versionYes
declaration_hashNoThe hash the preview returned.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.87.0

TDQS

A4.2/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: preview writes nothing, confirm from a program is always refused with 403 plus an escalation_id, the declaration is parked for a person, and it is withdrawn if the underlying delta changes. These are exactly the non-obvious traits an agent needs before calling.

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

Conciseness3/5

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

The two-phase structure is front-loaded and the confirm behavior is easy to find. However, the description is verbose and repeats the 'person's act' point, and it enumerates the preview payload at length even though an output schema exists, so not every sentence is maximally efficient.

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?

Given an 8-parameter tool with an output schema, the description covers the parts that matter: the two modes, the escalation outcome, and the required follow-up (report escalation_id, poll list_proposals). An agent has enough to invoke and handle results correctly.

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 already 88%, so the baseline is 3, but the description adds meaning beyond the schema: confirm is framed as 'a person's act', declaration_hash is tied to the previewed value, and the spans/resolutions are described as what 'make' the declaration. This enriches semantics the schema states only structurally.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource and frames the act precisely: 'Prepare the declaration of a control's delta as served: the act that makes it the control's specification.' An agent can tell this is a declaring/specification step rather than a read. However, it never names or differentiates itself from near-identical siblings such as get_control_delta, submit_control_delta, or request_delta_second_reading, so routing still requires inference.

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?

It gives clear when-to-use context: without confirm it is a preview that writes nothing, with confirm it triggers the person-escalation flow. It also gives an explicit behavioral rule ('Do not retry: report the escalation_id and poll list_proposals'), which is strong operational guidance. It stops short of naming sibling alternatives the agent might otherwise pick.

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