Skip to main content
Glama

plainhub_ledger_init

Initialize a shared Markdown ledger in a Git repository so AI agents and people can leave messages and decision cards under .agents, creating room.md and schema.md without overwriting existing files.

Instructions

Start a ledger: shared notes where AI agents and people leave messages and decision cards as Markdown files in .agents of a Git repository. Creates .agents/room.md (the language people read) and .agents/schema.md (the core rules) in the ledger in the repository folder set by the PLAINHUB_LEDGER environment variable. Never overwrites existing files. Returns a link that opens .agents in PlainHub once it is pushed, or what to do first if the repository is not on GitHub. Use it once, before the first plainhub_post, in a repository that has no .agents folder yet. Example: {"language": "en"} (use the language the user writes to you in).

Input Schema

NameRequiredDescriptionDefault
languageNoBCP 47 language tag for summaries and bodies, e.g. en, ja, pt-BR (default en)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.8.0

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does well: it discloses the write target, that existing files are never overwritten, what is returned (a PlainHub link), and the fallback when the repo is not on GitHub. The only unmapped area is auth/credential requirements, which are presumably handled by plainhub_auth but are not referenced.

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?

Dense but front-loaded: purpose first, then artifacts, then constraints, then return value, then usage condition and example. Slightly overpacked into a single block, but every clause carries information that is not duplicated from structured fields.

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 one-optional-param initialization tool with no output schema and no annotations, the description covers purpose, side effects, non-destructive guarantee, environment dependency, return value, error path, and sequencing relative to siblings. Nothing an agent needs in order to call 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 baseline is 3; the description goes beyond it by showing the example {"language": "en"} and instructing the agent to use the language the user writes in, which is genuine selection guidance the schema's 'default en' does not supply.

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 ('Start a ledger') and immediately defines what that means concretely: creates .agents/room.md and .agents/schema.md in the repository set by PLAINHUB_LEDGER. This is clearly distinguishable from sibling tools like plainhub_post or plainhub_ledger_sync.

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 gives the when: 'Use it once, before the first plainhub_post, in a repository that has no .agents folder yet.' It names the sibling it must precede and states the negative precondition (no existing .agents), leaving nothing to inference.

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