Skip to main content
Glama

brain_checkpoint

Publish project decisions and progress to a shared team brain so teammates' AIs stay in context, or read the timeline to see who reached what.

Instructions

Team project brains: decisions and progress shared with teammates' AIs, per project.

    Not for the user's own memory or their other PCs: that is brain_folder. A project brain
    holds what a team's AIs need to know about a project, apart from the user's personal
    memory and from every other project. Nothing
    personal is shared through this; only what is published here, when the user asks. Files
    and notifications stay in Slack, drives and GitHub; a project brain keeps the decisions,
    the progress, the context and links to where the work is.

    Always pass `workspace` = your current working folder: a folder bound to a project makes
    it the default `project`.

    Publish only when the user asks ("공유해", "프로젝트에 올려줘", "체크포인트 남겨"): that
    request is the approval, so do not ask again; ask only if the project is ambiguous.
    Afterwards say exactly what went where.
    - `projects`: the project brains the user takes part in, with when each was last shared.
    - `create_project` + `project` (+ `path` = folder to bind): only when the user names one.
    - `publish` + `type` + `summary` (one line, user's language) + `details` (a handover
      note: what changed and why, files and functions, test results, links, what is left).
      Never paste conversation text. `supersedes`=<id> replaces an earlier decision.
    - `context` (with publish or attach): what changed, where (pages, sections, files,
      functions), why, verification (test or check results), remaining, review_focus, and
      the ids it answers (`addresses`) and its `evidence` (commit, PR, test log, Slack or
      document links). Write only what you know; what is left out reads "not recorded".
    - `attach` + `path`: a git folder links its commit at the stage it really reached
      (committed / pushed / pr_open / merged / released; never call work done when the stage
      says otherwise); a URL (a Slack message, a drive document) is kept as a link. Files are
      not stored here: if the user wants a file shared, share it in Slack or a drive (with
      the tools for those) and attach the link.
    - `timeline`: "누가 어디까지 했어?" — answer from it only: who, what, what is left, and
      when it was last shared. Do not guess at anything newer. Follow its `instructions`.
    - `retract` + `checkpoint_id` (the publisher, or the project's owner);
      `set_instructions` + `instructions` (owner).
    - Members. Whoever creates a project owns it. `invite` + `member` + `role` (owner /
      editor / viewer) + `projects` returns a code to give them. `members` + `project`;
      `remove_member` + `member` + `project` (owner; or yourself, to leave). `audit`
      (+ `project`). On a teammate's PC: `join_team` + `code` (+ `name`), `leave_team` +
      `project`.
    - Where projects live: on a Postgres hub (`host`: make this PC one; teammates on the
      office network or over Tailscale), where `invite` on the hub's PC also makes their
      account (elsewhere they need an account from the hub's operator first); without a
      hub, on this PC alone. Someone in several team hubs and none of their own:
      `create_project` + `hub` (an address of it).
    - `set_name` + `name`: the name teammates see (else this PC's name). If a result says
      NAME_REQUIRED, ask the user for it (their own name, e.g. 고요한), set it, then retry.
    If the result says UNAVAILABLE, the hub cannot be reached: tell the user the latest
    shared state is unknown right now; never fill in from memory.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hubNo
codeNo
nameNo
pathNo
roleNo
typeNo
actionYes
memberNo
contextNo
detailsNo
projectNo
summaryNo
projectsNo
workspaceNo
supersedesNo
source_refsNo
instructionsNo
checkpoint_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only carry the generic safety flags (readOnly=false, destructive=false, idempotent=false, openWorld=false), and the description adds far richer behavior: approval semantics for publishing, the rule never to paste conversation text, the requirement to report exactly what went where, the NAME_REQUIRED and UNAVAILABLE recovery paths, and the anti-hallucination instruction to never fill in a missing hub state from memory. This is substantive context an agent could not infer from the structured fields.

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 purpose and the brain_folder exclusion are front-loaded before any action detail, and the action bullets are dense but each maps to a real operation. It is nonetheless a long wall of prose with some redundancy in the opening paragraph ('Nothing personal is shared... apart from the user's personal memory'), and the hub-placement and membership bullets are tangled together.

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?

An output schema exists, so return values need not be explained, and the description instead covers result handling (NAME_REQUIRED prompt-and-retry, UNAVAILABLE fallback). It documents almost every action's required inputs and the key policy constraints. The remaining gaps — the unmentioned source_refs parameter and the unexplained type enum meanings — are minor but real for a tool this complex.

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 description coverage is 0% across 18 parameters, so the description carries the full explanatory burden, and it largely delivers: it binds parameters to actions (publish + type + summary + details, attach + path, invite + member + role + projects, retract + checkpoint_id, set_name + name) and explains fields like details, context, supersedes, workspace and hub. It earns a 4 rather than 5 because 'source_refs' is never mentioned by name, and the nested context keys (addresses, evidence) are described without clarifying their placement in the schema.

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?

The opening line names a specific resource and scope — 'Team project brains: decisions and progress shared with teammates' AIs, per project' — and immediately draws the boundary against the sibling brain_folder ('Not for the user's own memory or their other PCs'). The action list further pins down what the tool does per operation. It stops short of distinguishing itself from the remaining siblings (brain_recall, brain_remember, brain_context, brain_forget), though the 'user's own memory' exclusion implicitly covers them.

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 states when to publish ('only when the user asks', with literal trigger phrases), that the request itself is the approval so the agent should not re-ask, and the one exclusion (ask only if the project is ambiguous). It also routes adjacent needs elsewhere — files go to Slack/drives/GitHub via those tools, personal memory goes to brain_folder — which is explicit when-not/alternatives guidance.

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