Skip to main content
Glama
rbilleci

bsh-mcp

by rbilleci

ledger_settle

Clear the unratified-outcome ledger without writing a scene entry, by providing a reason. Settles pending outcomes while preserving realized stakes in history and audit log.

Instructions

Clear the unratified-outcome ledger without writing a scene entry.

RUNTIME-ONLY. The narrator engine calls this during its settle step; it is excluded from the narrator model's tool surface by src/narrator/policy.py, and a game-master prompt must never be able to reach it. The waived outcomes stay in campaign state history and the audit log with their realized stakes; only the pending scene entry is skipped.

reason: one or two sentences on why no scene entry is needed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Without annotations, the description carries the full burden and meets it: it discloses runtime-only scope, policy exclusion, and the precise side effects (waived outcomes persist in campaign state history and audit log; only the pending scene entry is skipped). This gives an agent a clear model of what calling the tool does and does not change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly structured: a one-line purpose statement, a concise runtime/policy warning, and a parameter note. Every sentence carries distinct information with no filler.

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?

For a single-parameter, no-output-schema internal tool, the description covers what it does, what side effects it has, who is allowed to call it, and what the parameter means. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description compensates by explaining the reason parameter's content and length ('one or two sentences on why no scene entry is needed'). It could add examples or validation hints, but it is sufficient for a single self-named string parameter.

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 uses a specific verb ('Clear') and resource ('the unratified-outcome ledger') and immediately qualifies the behavior ('without writing a scene entry'). This clearly distinguishes it from siblings like scene_commit, which the surrounding tool list includes.

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?

It explicitly states when the tool runs ('during its settle step'), who may call it (only the narrator engine), and when it must never be reachable (from a game-master prompt, excluded by policy.py). This is stronger than most usage guidance and leaves no ambiguity.

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