Skip to main content
Glama

hub_report

Log work status (done, broken, blocked) to a shared journal, coordinating human and AI agents on project progress.

Instructions

Append a session report to the shared journal: what was done / broken / blocked.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNodefault: note
textYes
agentYes
forceNoNEXT: replaces the card's next step. If the current step was set by an owner role, a non-owner NEXT: is refused with the step's text unless force is true. The response always carries nextReplaced {text, by, at} when a step was replaced, and the card keeps one dated `prev` line.
privateNoroute this entry to the LOCAL-ONLY life braid (journal.life.jsonl — gitignored, never mesh-synced) and stamp it private. Prose only: DECIDE:/FACT:/COMM:/NEXT: write into a card, and cards are synced, so mixing the two would publish what you asked to keep local.
projectYes
staleDaysNothe reply carries digestAgeDays, and digestStale + a hint once the digest trails the project journal by this many days (default 7) — you are the one holding the facts that would fix it

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.9.15
    • addedInput schema / properties / force
      Added value: +{
      +  "description": "NEXT: replaces the card's next step. If the current step was set by an owner role, a non-owner NEXT: is refused with the step's text unless force is true. The response always carries nextReplaced {text, by, at} when a step was replaced, and the card keeps one dated `prev` line.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / staleDays
      Added value: +{
      +  "description": "the reply carries digestAgeDays, and digestStale + a hint once the digest trails the project journal by this many days (default 7) — you are the one holding the facts that would fix it",
      +  "type": "integer"
      +}
  2. Changed1 schema field changedv0.9.0
    • addedInput schema / properties / private
      Added value: +{
      +  "description": "route this entry to the LOCAL-ONLY life braid (journal.life.jsonl — gitignored, never mesh-synced) and stamp it private. Prose only: DECIDE:/FACT:/COMM:/NEXT: write into a card, and cards are synced, so mixing the two would publish what you asked to keep local.",
      +  "type": "boolean"
      +}
  3. First observedv0.1.6

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description carries the full burden and largely declines it: it says 'append' but nothing about whether entries are synced, whether they are mutable, required permissions, or what the response returns. Non-trivial behaviors like the local-only 'private' braid and the 'NEXT:' card replacement live only in the schema, not the prose.

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?

A single terse, front-loaded sentence with zero waste. It is efficient, though arguably it is so short that it under-serves a 7-parameter tool rather than being optimally sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has real complexity (force refusals, private local-only routing, stale-digest hints, card NEXT: semantics) and neither annotations nor an output schema to lean on, yet the description conveys none of it. An agent could invoke it but would not understand the side effects that the schema hints at only partially.

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 coverage is 57%, so the schema documents about half the parameters. The description contributes only the done/broken/blocked framing that maps loosely to the 'kind' enum and adds nothing about force, private, or staleDays semantics. A baseline 3 is appropriate given partial schema coverage and marginal prose value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Append a session report to the shared journal') and the content it carries (done/broken/blocked). It is clear on its own, but does not distinguish itself from siblings like hub_card_set, hub_section_add, or hub_task_add, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not, or alternative routing is given. The phrase 'session report' weakly implies end-of-session summarization, but with many overlapping journaling siblings the agent receives no signal about why to pick hub_report over hub_card_set or hub_task_add.

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