Skip to main content
Glama

save_decision

Capture or revise decision proposals with rationale, anchors, sources, and owner. It compares existing records, avoids duplicates, preserves history, and queues changes for review.

Instructions

Capture or revise a decision proposal with rationale, anchors, optional owner, sources, and a known actor. Compare matching get_context records and pending proposals before saving. When new evidence changes the same lesson's assumptions, scope, or recommended action, pass its existing id, including for accepted records. Preserve supported rationale and sources and replace obsolete instructions. Create a new record for a genuinely distinct lesson; skip unchanged restatements. No setup or map required. Writes a local record and preserves content history. Changes create a pending proposal while the last accepted revision remains operative; unchanged content does not re-verify or refresh it. Use review_decision for authorized acceptance or reaffirmation. A proposal cannot supersede a record with an operative accepted revision; review its replacement and retire the original separately.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoPass the matching record's existing id when evidence changes that lesson's assumptions, scope, or recommended action, including for accepted records. Changed content becomes a proposal while the accepted version remains operative; unchanged content leaves review and freshness untouched.
dirYesAbsolute path to the project root directory
bodyYesThe knowledge itself: what was tried/decided, why, and what to avoid. Must contain information NOT derivable by reading the code. Aim for 1500 characters or fewer; up to 2500 is accepted with a warning above the target. Matching context and hooks include the full body. Preserve exceptions; use sources for supporting references.
actorNoKnown person or agent recording this revision. Omit if unknown; do not infer from Git identity.
filesNoRepo-relative files or directory prefixes this applies to. Matching is shared by retrieval, hooks, review, and drift checking; changes flag the decision for re-verification.
forceNoSave even when a near-duplicate was detected
ownerNoResponsible person or team, when known. Null clears it. Required for acceptance.
titleYesShort, specific headline (max 80 characters). Generates a stable id on creation; revising the title keeps the existing id.
sourcesNoKnown PR, issue, incident, discussion, or document references. Omit to preserve; [] clears. At least one is required for acceptance.
categoryYes
supersedesNoId of an unreviewed record or proposal with no accepted revision to replace. Operative accepted decisions require separate review and retirement.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.17.0

TDQS

A4.5/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 richly: it discloses that changes create a pending proposal while the last accepted revision stays operative, that unchanged content does not re-verify or refresh, that content history is preserved, and that a proposal cannot supersede an operative accepted record. These are non-obvious write semantics an agent could not infer.

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?

Front-loaded with the purpose and dense with meaningful rules; nearly every sentence earns its place. It is long and somewhat repetitive on the id/supersede flow, which the schema already covers, keeping it short of a 5.

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 an 11-parameter, no-annotation, no-output-schema mutation tool, the description covers write behavior, history, and the review workflow thoroughly. Minor gaps remain around duplicate/force handling and the review handoff lifecycle, but it is largely complete.

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?

Schema description coverage is 91%, so parameters are already well documented (id, body, sources, supersedes all carry detailed schema text). The description restates id and actor behavior but adds little syntax or format meaning beyond the schema, so the baseline of 3 is appropriate.

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 opening sentence gives a specific verb+resource ('Capture or revise a decision proposal') and enumerates the accompanying content (rationale, anchors, owner, sources, actor). An agent can distinguish this from siblings like review_decision and get_context without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Explicit routing rules: compare before saving, pass an existing id when evidence changes the same lesson, create new records for genuinely distinct lessons, skip unchanged restatements, and use review_decision for authorized acceptance. Both when-to-use and the alternative tool are named.

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