Skip to main content
Glama

guard_contract

Destructive

Manage contract rules by listing, adding, or removing entries, while preserving seed constraints that only the owner can delete through the CLI or /guard-contract.

Instructions

Contract store: action="list" | "add" (with text) | "remove" (with id). Seed constraints (source="seed") cannot be removed by the model — the owner removes them via the CLI or /guard-contract, so a model cannot delete its own injected guardrails (e.g. 02-evidence-before-success).

Input Schema

NameRequiredDescriptionDefault
idNo
textNo
actionYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation profile is known. The description adds genuinely non-obvious behavior: the model cannot delete its own seed-injected guardrails, which explains why a remove call may be rejected. It does not say whether adds persist across sessions, whether non-seed removals are irreversible, or how failures surface.

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 action enumeration is front-loaded in the first sentence, and the seed-constraint restriction follows as the one behavioral caveat that matters. The parenthetical example (02-evidence-before-success) is illustrative rather than filler, though the sentence is slightly dense.

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?

For a three-parameter store tool with an output schema, the description covers the action vocabulary, per-action parameter needs, and the important ownership restriction on seed constraints. It leaves minor holes around persistence and error behavior, but nothing that would cause an agent to call it incorrectly.

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 description coverage is 0%, so the description carries the full burden and mostly succeeds: it enumerates the legal action values and binds text to add and id to remove. Remaining gaps are nullability (text and id default to null but the action-specific requirement is only implied) and the id format or source of valid ids.

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 names a concrete resource (a contract store) and enumerates its three operations (list, add with text, remove with id), so an agent can tell what the tool does at a glance. It is distinguishable from siblings like guard_evidence or guard_note by the word "contract," though it does not explicitly contrast itself with them.

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?

Each action carries an inline precondition — add needs text, remove needs id — which is actionable routing guidance. It also states an exclusion: seed constraints cannot be removed by the model and must be handled by the owner via CLI or /guard-contract. It stops short of saying when to prefer this store over sibling tools such as guard_note or guard_journal.

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