Skip to main content
Glama

brain_checkpoint

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

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) returns `command`: the user confirms the
      new text in a terminal; show them the command.
    - Members. Whoever creates a project owns it. `invite` + `member` + `role` (owner /
      editor / viewer) + `projects`, and `host`, are not done from here: they return
      `command` for the user to run in a terminal, which prints the code to give them. Show
      the user the command and say what it does. `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

NameRequiredDescriptionDefault
hubNo
codeNo
nameNo
pathNo
roleNo
typeNo
actionYes
memberNo
contextNo
detailsNo
projectNo
summaryNo
projectsNo
workspaceNo
supersedesNo
source_refsNoLinks or ids it is based on.
instructionsNo
checkpoint_idNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.9.5
    • addedInput schema / properties / source_refs / description
      Added value: +"Links or ids it is based on."
  2. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Goes well beyond the annotations: describes permission model (owner vs publisher for `retract`, owner for `remove_member`), that several actions return a `command` the user must run in a terminal, error protocols (UNAVAILABLE = hub unreachable, never fill in from memory; NAME_REQUIRED = ask then retry), and an integrity rule against overstating git stage. Minor ambiguity remains around `destructiveHint:false` given `retract` and `remove_member`, and nothing explains the read actions' cost or pagination.

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

Conciseness3/5

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

Purpose and the approval rule are front-loaded, which is right, but the body is a dense wall of prose with irregular indentation rather than scannable structure; for a 15-action dispatcher some length is justified, yet several clauses (hub topology, invite-command detail) could be tightened or grouped per action.

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?

Given 15 actions, 18 parameters, an output schema and partial annotations, the description is nearly complete: it covers approval semantics, error states, permission boundaries and where projects are hosted. What is left thin is the return shape of the multi-step flows (invite/host command sequences) and how the actions relate when chained.

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 only 6% (one parameter documented), so the description must carry the load and largely does: workspace, project, path, type, summary, details, supersedes, checkpoint_id, member, role, projects, hub, code, name and instructions are each tied to specific actions via `action` + param notation, and `context`'s untyped object is expanded into named sub-fields. Some overlap is left unresolved, notably `source_refs` versus `context.evidence`, and the action-parameter pairings remain inferential.

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?

Opens with a concrete verb-and-resource statement: project brains holding "decisions and progress shared with teammates' AIs, per project," and explicitly excludes the sibling: "Not for the user's own memory or their other PCs: that is brain_folder." The only weakness is that the tool multiplexes 15 actions, so a single purpose line cannot cover them all — but the core identity is unambiguous.

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?

Gives explicit when-to-use and when-not-to-act rules: "Publish only when the user asks ('공유해', ...): that request is the approval, so do not ask again; ask only if the project is ambiguous," plus `create_project` "only when the user names one," and timeline usage keyed to a concrete user question ("누가 어디까지 했어?"). It also routes work that does not belong here to other tools (files stay in Slack/drives/GitHub, invite/host return terminal commands).

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