Skip to main content
Glama

plainhub_decide

Raise a pending decision card in the repository ledger so a person can approve or reject choices like shipping changes, spending money, or changing permissions in PlainHub.

Instructions

Raise a decision card for a person (status pending) in the ledger in the repository folder set by the PLAINHUB_LEDGER environment variable (.agents/decisions/.md). Use it when something needs a human choice, such as shipping a change, spending money or changing permissions; the person approves or rejects it in PlainHub. Writes the file only; run plainhub_ledger_sync to share it. Returns a link that opens it in PlainHub (on a phone too) once it is pushed, or what to do first if the repository is not on GitHub. Refuses if the id already exists. Example: {"id": "2026-10-08-ship-login-fix", "summary": "Ship the login fix?", "ref": ["fix-login-timeout"], "body": "- What changes: users stay signed in\n- Risk: small"}

Input Schema

NameRequiredDescriptionDefault
idYesCard id: lowercase letters and digits joined by - or ., e.g. 2026-10-08-ship-login-fix
refNoBranches, commits or threads this card is about
bodyNoMarkdown body in the room language (.agents/room.md language:; English if not set) (max 4KB). Start a new paragraph with a blank line, or use a list ("- "); a single line break does not start a new line (as on GitHub).
refsNoRenamed to ref. Do not use (the card is not written)
summaryYesOne line in the room language (.agents/room.md language:; English if not set), max 120 characters

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.8.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses that the tool writes a local file only and does not sync, that it refuses on duplicate ids, that it returns a PlainHub link once pushed or remediation guidance if the repo is not on GitHub, and where the ledger lives (PLAINHUB_LEDGER env var). Those are non-obvious side effects and failure modes that cannot be inferred from the schema.

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?

Front-loaded with purpose, then when-to-use, then side effects and return behavior, then an example — a logical progression with little waste. The example is long, but it is the concrete payload shape an agent benefits from, so the length is mostly justified.

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?

There is no output schema, yet the description explains the return value (a PlainHub link after push, or first-step guidance if the repo isn't on GitHub), plus the write-only local behavior and the required follow-up sync. Nothing essential to calling this correctly is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the worked example shows how id, summary, ref and body combine in a realistic card and illustrates the intended body structure (what changes / risk), adding value beyond the field descriptions. It goes slightly beyond the baseline rather than merely restating the schema.

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?

A specific verb-plus-resource: 'Raise a decision card for a person (status pending) in the ledger', plus the exact file location .agents/decisions/<id>.md. It is clearly distinguishable from siblings such as plainhub_ledger_sync (sharing) and plainhub_ledger_decisions (reading), so an agent can select it without opening another 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 with concrete triggers ('shipping a change, spending money or changing permissions'). It also states the crucial follow-up step ('run plainhub_ledger_sync to share it') and the condition under which it refuses (duplicate id), which is exactly the routing information an agent needs.

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