Skip to main content
Glama

save_decision

Capture or revise evidence-backed decision proposals before implementation or merge, preserving rationale, sources, history, and pending review status.

Instructions

Capture or revise a decision proposal as soon as the lesson is supported by evidence, without waiting for implementation or merge. Keep unimplemented remedies tentative. Include 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.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and largely delivers: it discloses that it writes a local record, preserves content history, creates a pending proposal while the last accepted revision stays operative, does not re-verify unchanged content, and cannot supersede an operative accepted revision. It doesn't cover permissions/auth or rate/conflict handling in detail, but the lifecycle behavior is well documented.

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 description is dense and somewhat repetitive, revisiting the id/proposal/acceptance behavior multiple times and echoing the schema's id text. Front-loaded purpose is good, but several sentences could be consolidated without losing meaning.

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 mutation tool with no annotations and no output schema, the description covers the essential lifecycle, idempotency, and cross-tool routing an agent needs. What is missing (authorization details, error/conflict outcomes) is minor relative to what is provided.

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 the schema already documents parameters such as id, owner, sources, files, and supersedes. The description restates id and sources semantics (preserve rationale/sources, replace obsolete instructions), adding modest value but little that the schema descriptions do not already convey. Baseline 3 applies.

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+resource ('Capture or revise a decision proposal') and immediately clarifies scope ('as soon as the lesson is supported by evidence, without waiting for implementation or merge'). It distinguishes itself from the sibling 'review_decision' and from 'get_context' records, so an agent can identify the tool without opening the 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 when-to-use and when-not rules: compare matching get_context records and pending proposals before saving, pass the existing id when the same lesson changes, create a new record for a distinct lesson, skip unchanged restatements, and use review_decision for acceptance. Alternatives and conditions are named rather than inferred.

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