Skip to main content
Glama

withdraw_proposal

Withdraw a proposal batch to remove all still-pending shapes in one journal step, keep already accepted shapes, and mark the record withdrawn; undo restores the batch.

Instructions

Take a proposal back (#365): every still-pending shape in the batch is removed in ONE journal step, the record stays marked withdrawn (its label is history the estimator may still read), and new commits stop attaching to it. Shapes the estimator already accepted are ink and stay — the reply counts them. This is the honest exit for "that batch was wrong" — one call instead of N delete_shape calls, and undo_last restores the whole batch.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "proposal_id": "<proposal_id>"
    },
    "name": "withdraw_proposal"
  }
}

Input Schema

NameRequiredDescriptionDefault
proposal_idYesThe batch, from propose_takeoff

Output Schema

NameRequiredDescriptionDefault
noteYes
labelYes
withdrawnYesPending shapes removed
proposal_idYes
accepted_keptYesShapes from the batch the estimator had accepted — untouched

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.1.31
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / accepted_kept / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / accepted_kept / minimum
      Added value: +-9007199254740991
    • addedOutput schema / properties / withdrawn / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / withdrawn / minimum
      Added value: +-9007199254740991
  2. Addedv0.1.21

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full behavioral burden and does so well: it discloses the one-step journal removal, preserved withdrawn record, cessation of new commits, retention of already-accepted shapes, reply count, and undo reversibility. Error cases and idempotency are not covered, but the mutation's core behavior and side effects are unusually clear for a one-parameter tool.

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 description is front-loaded with 'Take a proposal back' and is information-dense rather than padded. The issue reference '#365' and the 'ink' metaphor add slight noise, though the metaphor is immediately explained, and the overall structure remains clear.

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?

This is a one-parameter mutation with an output schema, and the description covers all key context: pending versus accepted shapes, record state after withdrawal, commit behavior, and undo restoration. Return details can be handled by the output schema, so an agent has enough information to invoke it correctly.

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 100%, and proposal_id is already documented as 'The batch, from propose_takeoff.' The description reinforces that the tool operates on a batch, but it adds no format or constraint details beyond the schema, so the baseline 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?

States a specific action, 'Take a proposal back,' and precisely describes the effects: pending shapes removed, record remains marked withdrawn, and new commits stop attaching. It distinguishes itself from delete_shape and undo_last by naming them and contrasting the one-call batch behavior.

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?

Makes the use case explicit with 'that batch was wrong' and names alternatives: one call instead of N delete_shape calls, with undo_last restoring the whole batch. It does not spell out when to prefer revise_proposal or when not to withdraw, such as when only part of the batch is wrong, so it falls short of full when/when-not guidance.

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