Skip to main content
Glama

Commit reviewed updates

commit_reviewed_updates
DestructiveIdempotent

Save only the explicitly approved review selection: unchanged receipt, approved proposal ids, confirm:true and UUID idempotency_key (normally review_id). First confirmation freezes selection; only the identical receipt/key/selection replays stored outcomes without execution. Expiry blocks first commits, not exact replays; no retained match requires CRM inspection before a fresh review. Current policy/role/scope/schema/revision/audit/automation guards apply. Select every prerequisite; dependency order applies, and failed/queued/unknown creates block dependents. Report saved/unsaved rows truthfully. For execution_in_progress poll unchanged; execution_state_unknown requires CRM inspection, never automatic write retries or fresh reviews. Success needs only a brief acknowledgement, no repeat review or save question.

When to use: After explicit app or chat approval; reuse the exact request to read stored results.

Example: Approve proposal IDs from that review and commit them.

Input Schema

NameRequiredDescriptionDefault
confirmNoMust be true to execute; omitted or false commits nothing and returns a prompt to get the user's explicit approval first.
receiptYesThe receipt string returned by review_proposed_updates, passed back unchanged (it is bound to that review, this workspace and user, and expires).
idempotency_keyYesA UUID minted once per review (normally the returned review_id); reuse the same key to replay stored outcomes instead of executing again.
selected_proposal_idsYesThe review's proposal ids (its proposals[].id) the user explicitly approved — unique, each present in the receipt; the first confirmed call freezes this set.

Output Schema

NameRequiredDescriptionDefault
noteNo
summaryNo
outcomesNo
replayedNo
confirmedNo
review_idNo
review_commitNo
request_statusNo
selection_mismatchNo
frozen_selected_proposal_idsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. Changed2 schema fields changed
    • removedInput schema / properties / idempotency_key / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • removedInput schema / properties / selected_proposal_ids / items / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
  3. Changed11 schema fields changed
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / frozen_selected_proposal_ids / items / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • removedOutput schema / properties / outcomes / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / outcomes / items / properties / approval_id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • removedOutput schema / properties / outcomes / items / properties / proposal_id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • removedOutput schema / properties / outcomes / items / properties / record / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / outcomes / items / properties / record / properties / id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • removedOutput schema / properties / review_commit / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / review_id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • removedOutput schema / properties / summary / additionalProperties
      Removed value: -false
  4. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by explaining that the first confirmation freezes the selection, that only an identical receipt/key/selection replays stored outcomes, and that expiry blocks first commits but not exact replays. It also discloses dependency ordering, guard application, and required handling for execution_in_progress versus execution_state_unknown.

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?

It is front-loaded with the core save action and behavior, then provides a 'When to use' section and example. The density is justified by the tool's complexity, though several semicolon-chained clauses and vague lines like 'Report saved/unsaved rows truthfully' reduce readability.

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 the destructive, idempotent commit nature of the tool, the description covers replay, expiry, idle/error states, dependency blocking, guards, and success acknowledgement. With an output schema and full input schema descriptions already present, this is complete for correct invocation.

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 coverage is 100%, so the schema already documents all four parameters, including confirm, receipt, idempotency_key, and selected_proposal_ids. The description reinforces the approved-selection and idempotency semantics but adds little parameter-level detail beyond the schema's own descriptions.

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 and resource: 'Save only the explicitly approved review selection.' It distinguishes the operation from prose review and status tools by scoping the write to an already-approved receipt and selection, so an agent knows exactly what this commits.

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?

Explicitly says 'When to use: After explicit app or chat approval' and 'reuse the exact request to read stored results.' It also rules out alternatives: no fresh reviews on execution_state_unknown and never automatic write retries.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources