Skip to main content
Glama
tillbooks

tillbooks

Official

po_revise

Revises a sent purchase order by snapshotting header and lines, incrementing the revision, and reopening it as an editable draft; received and billed quantities stay unchanged.

Instructions

Revidiere eine gesendete Bestellung (sent -> draft, die Revise-Kante): snapshots the current header + lines into po_revision (append-only, H-AUDIT), increments revision, and re-opens the PO as a draft for editing via po_upsert. received_qty and billed_qty survive untouched (they belong to receipts/matches). The re-send rides the P8-gated po_send, so a revision can never leak to the supplier without the dial. Only a SENT PO is revisable (draft/received/closed/cancelled -> invalid_transition). Idempotent: a replay yields one snapshot + one increment.

Input Schema

NameRequiredDescriptionDefault
poIdYes
actorNo
reasonNo
workspaceIdYes
idempotencyKeyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the single destructiveHint=false annotation, it discloses the append-only po_revision snapshot, the revision counter increment, that received_qty/billed_qty are preserved because they belong to receipts/matches, the P8 gate on re-send, the invalid_transition failure mode, and idempotent replay semantics. This is exactly the mutation-behavior disclosure an agent needs and does not contradict the annotation since no existing data is destroyed.

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 state transition is front-loaded and each sentence adds a distinct fact (snapshot, preserved quantities, gate, precondition, idempotency) with no filler. The German/English code-switching ('Revidiere eine gesendete Bestellung', 'die Revise-Kante') slightly slows parsing but does not add length.

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 state-changing tool with only destructiveHint annotated and no output schema, the description covers the audit trail, the state gate, the quantity preservation rule, and the re-send gate — enough to call it safely. Only the caller-supplied metadata parameters (actor, reason) are left unaddressed.

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 0%, so the description carries the burden; it does add meaning for idempotencyKey ('a replay yields one snapshot + one increment') and implicitly for poId via the state gate. It says nothing about actor, reason, or workspaceId, which remain guesswork, so compensation is only partial.

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 description names a specific verb and resource plus the exact state transition it performs (sent -> draft), and immediately frames the edge as snapshot + revision increment + reopen for editing via po_upsert. An agent can distinguish it from po_list/po_get/po_send without opening any schema.

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?

The precondition is stated precisely ('Only a SENT PO is revisable', with draft/received/closed/cancelled returning invalid_transition), which is strong when-to-use guidance and names the sibling that carries the follow-up (po_send). The gap is that it never contrasts itself with the po_amendment_* family, which is the most plausible alternative for changing a committed PO, so an agent must infer that distinction.

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

Deploy Server

Other Tools