Skip to main content
Glama

Coordinate work

coordination_write
Destructive

Record what you are doing so other agents can see it: claims on documents, durable waits, subscriptions, the cursors of what you have read, and truths (shared facts, decisions and assumptions anchored to a document, which can be contested and superseded), and projects (a folder marked as one, so the agents of everyone who reads it are briefed on it; its brief is the folder's AGENTS.md and its discussion the folder's comments). Releasing, cancelling, superseding and ending a project end what was there. Actions — claim: claim a document or one section of it (location or node, span: the heading text, intent, lease_s); an overlapping claim comes back instead and nothing is recorded, unless alongside=true. Writes into a section someone else claimed are refused. renew: extend your claim (claim_id, lease_s). release: release your claim (claim_id). wait_for: register a durable wait for a reply to a message (on_message) or the next change on a subscription (on_subscription), with a deadline and a continuation note; you are woken through your card's channel or your next brief_me. cancel_wait: cancel a pending wait (wait_id). subscribe: follow a document or folder (location or node, span), an identity, a span_id, a truth or a room. unsubscribe: stop following (subscription_id). ack_changes: acknowledge your subscriptions' changes through a position (through). ack_brief: advance brief_me's cursor (through: cursor.head from a brief), so its changed starts after it. propose: propose a truth about a document (location or node, span, kind, statement, evidence). accept: accept a truth, as its owner (id). verify: record how a truth was checked (id, method, rerunnable, result). contest: contest a truth (id, statement: what you hold instead, argument, evidence; evidence is required). argue: answer a contest (id, argument, evidence); after 3 rounds the document's owner decides. decide: decide a contested truth, as the document's owner (id, decision: upheld or overturned). supersede: replace a truth with a new statement, as its owner; spans citing the old one become stale (id, statement). pin: pin a document you can read to your person's Home, where they see it rendered (location or node); only a person's own connected client has a Home to pin to, and a pin gives nobody access. unpin: take a document off your person's Home (location or node). order_pins: set the order of your person's Home pins (order: node ids from browse action=pins). link: link two things (from, to: : with type node, span, truth, message or knowledge; type). start_project: mark a folder as a project and follow it (location or node, routing: members or owner); only someone who may share the folder, and never inside another project. end_project: stop a folder being a project; its documents and discussion stay (location or node). route_project: say who routes a project's work (location or node, routing: members or owner).

Input Schema

NameRequiredDescriptionDefault
idNoaccept, verify, contest, argue, decide, supersede: the truth's id
toNolink: the other end, as <type>:<id>
fromNolink: one end, as <type>:<id> — node, span, truth, message or knowledge; a node's id may be its console link, a knowledge item's its search citation
kindNopropose: fact, decision or assumption
nodeNoclaim: the document's node id instead of a path. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · subscribe: the document or folder, by id instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · propose: a node id, instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · pin, unpin: the document's node id, instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · start_project, end_project, route_project: the folder's node id, instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too.
seatNothe seat token identity_write action=take_seat gave you; pass it on every call while you drive that agent
spanNoclaim: the section, as its heading text; omit for the whole document · subscribe: with location or node: one section, as its heading text · propose: a span id, from browse action=spans
typeNolink: what the link says: cites, depends_on, derived_from, supersedes or relates_to
orderNoorder_pins: node ids in the order Home shows them; pins left out keep their place after these. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too.
truthNosubscribe: a truth id to follow
actionYeswhat to do; each action takes the arguments its line names
intentNoclaim: what you are going to do there
methodNoverify: how it was checked
reasonNoclaim, renew, release, propose, accept, verify, contest, argue, decide, supersede, link: why you are doing this, in one line (at most 200 characters); recorded with the event and exported with the log
resultNoverify: what the check found
lease_sNoclaim, renew: lease in seconds (max 86400). claim: default 1800. renew: default the claim's own lease again, never shorter than it has left
room_idNosubscribe: a room to follow
routingNostart_project, route_project: members (the default): each member's agent takes the work its person picks; owner: the owner's side assigns it
span_idNosubscribe: a stable span id to follow, from browse action=spans
throughNoack_changes: the last seq you have read · ack_brief: a log position: cursor.head from a brief
wait_idNocancel_wait: the wait's id, from wait_for or browse action=waits
argumentNocontest, argue: why, with the evidence
claim_idNorenew, release: the claim's id, from claim or browse action=claims
deadlineNowait_for: ISO time; every wait has one (max 30 days)
decisionNodecide: upheld or overturned
evidenceNopropose, contest, argue, supersede: paths, commits, message ids, URLs; repeatable
identityNosubscribe: an identity id to follow
locationNoclaim: the document, whole path from the workspace root. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · subscribe: the document or folder to follow. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · propose: a document or folder path. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · pin, unpin: the document's location, e.g. team/dashboard.md. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · start_project, end_project, route_project: the folder. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too.
acting_asNoan agent identity below you (its id, from identity_write action=spawn) to make this one call as, with that agent's narrower access; for a helper whose session signs in as its person
alongsideNoclaim: record the claim even if it overlaps someone else's
statementNopropose, contest, supersede: the statement; for contest, what you hold instead
on_messageNowait_for: the message whose reply you are waiting for
rerunnableNoverify: whether someone else can re-run the check
continuationNowait_for: what to do when it resolves, for whoever picks it up
idempotency_keyNoAny unique string you choose for this write, e.g. a UUID. If you retry the call with the same key and the same arguments, the first answer is returned and nothing is done twice. Reusing a key for a different request is refused. Keys are kept 24 hours.
on_subscriptionNowait_for: the subscription whose next change you are waiting for
subscription_idNounsubscribe: the subscription's id, from subscribe or browse action=subscriptions

Output Schema

NameRequiredDescriptionDefault
linkNo
nodeNo
pinsNo
waitNo
claimNo
itemsNo
linksNo
sinceNo
spansNo
truthNo
waitsNo
actionYesthe action that answered
claimsNo
debateNo
heldByNo
pinnedNo
schemaNo
statusNo
truthsNo
historyNo
pendingNo
projectNo
decisionNo
locationNo
positionNo
projectsNo
decisionsNo
escalatedNo
nextOffsetNospans: the offset of the next page, or null when this one ends the document
organizationNo
subscriptionNo
subscriptionsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / decision
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "assertedByName": {
      +      "type": "string"
      +    },
      +    "ballot": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "ballotHash": {
      +          "type": "string"
      +        },
      +        "context": {
      +          "type": "string"
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "options": {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "id": {
      +                "type": "string"
      +              },
      +              "summary": {
      +                "type": "string"
      +              },
      +              "tradeoffs": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "summary",
      +              "tradeoffs"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "preference": {
      +          "type": "string"
      +        },
      +        "resolution": {
      +          "enum": [
      +            "proposal",
      +            "verified-choice",
      +            "unresolved-choice"
      +          ],
      +          "type": "string"
      +        },
      +        "selectedOptionId": {
      +          "type": "string"
      +        },
      +        "title": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "title",
      +        "context",
      +        "resolution",
      +        "options"
      +      ],
      +      "type": "object"
      +    },
      +    "contextSource": {
      +      "const": "current-document",
      +      "type": "string"
      +    },
      +    "execution": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "evidence": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "state": {
      +          "enum": [
      +            "not_started",
      +            "working",
      +            "waiting",
      +            "blocked",
      +            "completed",
      +            "cancelled"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "evidence"
      +      ],
      +      "type": "object"
      +    },
      +    "lifecycle": {
      +      "enum": [
      +        "needs",
      +        "decided",
      +        "completed",
      +        "replaced"
      +      ],
      +      "type": "string"
      +    },
      +    "location": {
      +      "type": "string"
      +    },
      +    "origin": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "organization": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "id": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "name"
      +          ],
      +          "type": "object"
      +        },
      +        "recordedWith": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "name": {
      +              "type": "string"
      +            },
      +            "version": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "name"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "organization"
      +      ],
      +      "type": "object"
      +    },
      +    "sourceCommit": {
      +      "type": "string"
      +    },
      +    "sourceIsLive": {
      +      "type": "boolean"
      +    },
      +    "sourceUrl": {
      +      "type": "string"
      +    },
      +    "story": {
      +      "additionalProperties": {},
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "truth": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "anchor": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "drifted": {
      +              "type": "boolean"
      +            },
      +            "nodeId": {
      +              "type": "string"
      +            },
      +            "spanId": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "nodeId",
      +            "spanId",
      +            "drifted"
      +          ],
      +          "type": "object"
      +        },
      +        "assertedBy": {
      +          "type": "string"
      +        },
      +        "confidence": {
      +          "enum": [
      +            "stated",
      +            "verified"
      +          ],
      +          "type": "string"
      +        },
      +        "createdAt": {
      +          "type": "string"
      +        },
      +        "debate": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "cap": {
      +                  "type": "number"
      +                },
      +                "contestStatement": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "contestedBy": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "decideBy": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "decidedHow": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "deciderId": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "decision": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "note": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "rounds": {
      +                  "type": "number"
      +                },
      +                "threadId": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "threadId",
      +                "contestedBy",
      +                "contestStatement",
      +                "rounds",
      +                "cap",
      +                "deciderId",
      +                "decideBy",
      +                "decision",
      +                "decidedHow",
      +                "note"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "evidence": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "kind": {
      +          "type": "string"
      +        },
      +        "ownerId": {
      +          "type": "string"
      +        },
      +        "statement": {
      +          "type": "string"
      +        },
      +        "status": {
      +          "type": "string"
      +        },
      +        "supersededBy": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "supersedes": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "updatedAt": {
      +          "type": "string"
      +        },
      +        "verification": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "at": {
      +                  "type": "string"
      +                },
      +                "by": {
      +                  "type": "string"
      +                },
      +                "method": {
      +                  "type": "string"
      +                },
      +                "rerunnable": {
      +                  "type": "boolean"
      +                },
      +                "result": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "method",
      +                "rerunnable",
      +                "result",
      +                "by",
      +                "at"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "kind",
      +        "status",
      +        "statement",
      +        "evidence",
      +        "ownerId",
      +        "assertedBy",
      +        "anchor",
      +        "confidence",
      +        "verification",
      +        "supersedes",
      +        "supersededBy",
      +        "debate",
      +        "createdAt",
      +        "updatedAt"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "truth",
      +    "location",
      +    "assertedByName",
      +    "sourceUrl",
      +    "lifecycle",
      +    "origin"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / decisions
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "assertedByName": {
      +        "type": "string"
      +      },
      +      "ballot": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "ballotHash": {
      +            "type": "string"
      +          },
      +          "context": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "options": {
      +            "items": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "id": {
      +                  "type": "string"
      +                },
      +                "summary": {
      +                  "type": "string"
      +                },
      +                "tradeoffs": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "summary",
      +                "tradeoffs"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "preference": {
      +            "type": "string"
      +          },
      +          "resolution": {
      +            "enum": [
      +              "proposal",
      +              "verified-choice",
      +              "unresolved-choice"
      +            ],
      +            "type": "string"
      +          },
      +          "selectedOptionId": {
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "title",
      +          "context",
      +          "resolution",
      +          "options"
      +        ],
      +        "type": "object"
      +      },
      +      "contextSource": {
      +        "const": "current-document",
      +        "type": "string"
      +      },
      +      "execution": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "evidence": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "state": {
      +            "enum": [
      +              "not_started",
      +              "working",
      +              "waiting",
      +              "blocked",
      +              "completed",
      +              "cancelled"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "state",
      +          "evidence"
      +        ],
      +        "type": "object"
      +      },
      +      "lifecycle": {
      +        "enum": [
      +          "needs",
      +          "decided",
      +          "completed",
      +          "replaced"
      +        ],
      +        "type": "string"
      +      },
      +      "location": {
      +        "type": "string"
      +      },
      +      "origin": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "organization": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "id": {
      +                "type": "string"
      +              },
      +              "name": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "name"
      +            ],
      +            "type": "object"
      +          },
      +          "recordedWith": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "name": {
      +                "type": "string"
      +              },
      +              "version": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "name"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "organization"
      +        ],
      +        "type": "object"
      +      },
      +      "sourceCommit": {
      +        "type": "string"
      +      },
      +      "sourceIsLive": {
      +        "type": "boolean"
      +      },
      +      "sourceUrl": {
      +        "type": "string"
      +      },
      +      "story": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "summary": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "truth": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "anchor": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "drifted": {
      +                "type": "boolean"
      +              },
      +              "nodeId": {
      +                "type": "string"
      +              },
      +              "spanId": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "nodeId",
      +              "spanId",
      +              "drifted"
      +            ],
      +            "type": "object"
      +          },
      +          "assertedBy": {
      +            "type": "string"
      +          },
      +          "confidence": {
      +            "enum": [
      +              "stated",
      +              "verified"
      +            ],
      +            "type": "string"
      +          },
      +          "createdAt": {
      +            "type": "string"
      +          },
      +          "debate": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "cap": {
      +                    "type": "number"
      +                  },
      +                  "contestStatement": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "contestedBy": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "decideBy": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "decidedHow": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "deciderId": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "decision": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "note": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "rounds": {
      +                    "type": "number"
      +                  },
      +                  "threadId": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "threadId",
      +                  "contestedBy",
      +                  "contestStatement",
      +                  "rounds",
      +                  "cap",
      +                  "deciderId",
      +                  "decideBy",
      +                  "decision",
      +                  "decidedHow",
      +                  "note"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "evidence": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "type": "string"
      +          },
      +          "ownerId": {
      +            "type": "string"
      +          },
      +          "statement": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "type": "string"
      +          },
      +          "supersededBy": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "supersedes": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "updatedAt": {
      +            "type": "string"
      +          },
      +          "verification": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "at": {
      +                    "type": "string"
      +                  },
      +                  "by": {
      +                    "type": "string"
      +                  },
      +                  "method": {
      +                    "type": "string"
      +                  },
      +                  "rerunnable": {
      +                    "type": "boolean"
      +                  },
      +                  "result": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "method",
      +                  "rerunnable",
      +                  "result",
      +                  "by",
      +                  "at"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "kind",
      +          "status",
      +          "statement",
      +          "evidence",
      +          "ownerId",
      +          "assertedBy",
      +          "anchor",
      +          "confidence",
      +          "verification",
      +          "supersedes",
      +          "supersededBy",
      +          "debate",
      +          "createdAt",
      +          "updatedAt"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "truth",
      +      "location",
      +      "assertedByName",
      +      "sourceUrl",
      +      "lifecycle",
      +      "origin"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / organization
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "id": {
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "name"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / schema
      Added value: +{
      +  "const": "agentlefs-decision-history/v1",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. Changed46 schema fields changed
    • addedInput schema / properties / seat
      Added value: +{
      +  "description": "the seat token identity_write action=take_seat gave you; pass it on every call while you drive that agent",
      +  "maxLength": 64,
      +  "type": "string"
      +}
    • removedOutput schema / properties / claim / properties / span / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / claim / properties / span / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / claims / items / properties / span / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / claims / items / properties / span / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / heldBy / items / properties / span / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / heldBy / items / properties / span / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / history / properties / versions / items / properties / editorId / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / history / properties / versions / items / properties / editorId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / history / properties / versions / items / properties / upstream / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "authors": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "provider": {
      -        "type": "string"
      -      },
      -      "ref": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "provider",
      -      "ref",
      -      "authors"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "authors": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "provider": {
      +        "type": "string"
      +      },
      +      "ref": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "provider",
      +      "ref",
      +      "authors"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / items / items / properties / by / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / items / items / properties / by / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / items / items / properties / objectId / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / items / items / properties / objectId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / nextOffset / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / nextOffset / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / project / properties / owner / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / project / properties / owner / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / projects / items / properties / owner / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / projects / items / properties / owner / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscription / properties / span / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscription / properties / span / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / subscriptions / items / properties / span / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / subscriptions / items / properties / span / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / truth / properties / anchor / properties / spanId / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / truth / properties / anchor / properties / spanId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / truth / properties / debate / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "cap": {
      -        "type": "number"
      -      },
      -      "contestStatement": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "contestedBy": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "decideBy": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "decidedHow": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "deciderId": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "decision": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "rounds": {
      -        "type": "number"
      -      },
      -      "threadId": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "threadId",
      -      "contestedBy",
      -      "contestStatement",
      -      "rounds",
      -      "cap",
      -      "deciderId",
      -      "decideBy",
      -      "decision",
      -      "decidedHow",
      -      "note"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "cap": {
      +        "type": "number"
      +      },
      +      "contestStatement": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "contestedBy": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "decideBy": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "decidedHow": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "deciderId": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "decision": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "note": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "rounds": {
      +        "type": "number"
      +      },
      +      "threadId": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "threadId",
      +      "contestedBy",
      +      "contestStatement",
      +      "rounds",
      +      "cap",
      +      "deciderId",
      +      "decideBy",
      +      "decision",
      +      "decidedHow",
      +      "note"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / truth / properties / supersededBy / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / truth / properties / supersededBy / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / truth / properties / supersedes / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / truth / properties / supersedes / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / truths / items / properties / anchor / properties / spanId / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / truths / items / properties / anchor / properties / spanId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / truths / items / properties / debate / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "cap": {
      -        "type": "number"
      -      },
      -      "contestStatement": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "contestedBy": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "decideBy": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "decidedHow": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "deciderId": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "decision": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "rounds": {
      -        "type": "number"
      -      },
      -      "threadId": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "threadId",
      -      "contestedBy",
      -      "contestStatement",
      -      "rounds",
      -      "cap",
      -      "deciderId",
      -      "decideBy",
      -      "decision",
      -      "decidedHow",
      -      "note"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "cap": {
      +        "type": "number"
      +      },
      +      "contestStatement": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "contestedBy": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "decideBy": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "decidedHow": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "deciderId": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "decision": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "note": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "rounds": {
      +        "type": "number"
      +      },
      +      "threadId": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "threadId",
      +      "contestedBy",
      +      "contestStatement",
      +      "rounds",
      +      "cap",
      +      "deciderId",
      +      "decideBy",
      +      "decision",
      +      "decidedHow",
      +      "note"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / truths / items / properties / supersededBy / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / truths / items / properties / supersededBy / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / truths / items / properties / supersedes / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / truths / items / properties / supersedes / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / wait / properties / counterparty / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / wait / properties / counterparty / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / wait / properties / resolvedAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / wait / properties / resolvedAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / waits / items / properties / counterparty / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / waits / items / properties / counterparty / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / waits / items / properties / resolvedAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / waits / items / properties / resolvedAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  4. Changed7 schema fields changed
    • addedInput schema / properties / acting_as
      Added value: +{
      +  "description": "an agent identity below you (its id, from identity_write action=spawn) to make this one call as, with that agent's narrower access; for a helper whose session signs in as its person",
      +  "type": "string"
      +}
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "claim",
      -  "renew",
      -  "release",
      -  "wait_for",
      -  "cancel_wait",
      -  "subscribe",
      -  "unsubscribe",
      -  "ack_changes",
      -  "ack_brief",
      -  "propose",
      -  "accept",
      -  "verify",
      -  "contest",
      -  "argue",
      -  "decide",
      -  "supersede",
      -  "pin",
      -  "unpin",
      -  "order_pins",
      -  "link"
      -]New value: +[
      +  "claim",
      +  "renew",
      +  "release",
      +  "wait_for",
      +  "cancel_wait",
      +  "subscribe",
      +  "unsubscribe",
      +  "ack_changes",
      +  "ack_brief",
      +  "propose",
      +  "accept",
      +  "verify",
      +  "contest",
      +  "argue",
      +  "decide",
      +  "supersede",
      +  "pin",
      +  "unpin",
      +  "order_pins",
      +  "link",
      +  "start_project",
      +  "end_project",
      +  "route_project"
      +]
    • changedInput schema / properties / location / description
      Previous value: -"claim: the document, whole path from the workspace root. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · subscribe: the document or folder to follow. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · propose: a document or folder path. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · pin, unpin: the document's location, e.g. team/dashboard.md. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too."New value: +"claim: the document, whole path from the workspace root. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · subscribe: the document or folder to follow. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · propose: a document or folder path. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · pin, unpin: the document's location, e.g. team/dashboard.md. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · start_project, end_project, route_project: the folder. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too."
    • changedInput schema / properties / node / description
      Previous value: -"claim: the document's node id instead of a path. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · subscribe: the document or folder, by id instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · propose: a node id, instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · pin, unpin: the document's node id, instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too."New value: +"claim: the document's node id instead of a path. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · subscribe: the document or folder, by id instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · propose: a node id, instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · pin, unpin: the document's node id, instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · start_project, end_project, route_project: the folder's node id, instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too."
    • addedInput schema / properties / routing
      Added value: +{
      +  "description": "start_project, route_project: members (the default): each member's agent takes the work its person picks; owner: the owner's side assigns it",
      +  "enum": [
      +    "members",
      +    "owner"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / project
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "location": {
      +      "type": "string"
      +    },
      +    "node": {
      +      "type": "string"
      +    },
      +    "owner": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "the folder's owner, which is the project's"
      +    },
      +    "repos": {
      +      "description": "the repositories its AGENTS.md lists under repos:, as host/owner/name",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "routing": {
      +      "description": "members choose their work, or the owner's side assigns it",
      +      "enum": [
      +        "members",
      +        "owner"
      +      ],
      +      "type": "string"
      +    },
      +    "started_at": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "node",
      +    "location",
      +    "routing",
      +    "owner",
      +    "started_at"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / projects
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "location": {
      +        "type": "string"
      +      },
      +      "node": {
      +        "type": "string"
      +      },
      +      "owner": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "the folder's owner, which is the project's"
      +      },
      +      "repos": {
      +        "description": "the repositories its AGENTS.md lists under repos:, as host/owner/name",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "routing": {
      +        "description": "members choose their work, or the owner's side assigns it",
      +        "enum": [
      +          "members",
      +          "owner"
      +        ],
      +        "type": "string"
      +      },
      +      "started_at": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "node",
      +      "location",
      +      "routing",
      +      "owner",
      +      "started_at"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  5. Changed5 schema fields changed
    • changedInput schema / properties / from / description
      Previous value: -"link: one end, as <type>:<id> — node, span, truth or message; a node's id may be its console link"New value: +"link: one end, as <type>:<id> — node, span, truth, message or knowledge; a node's id may be its console link, a knowledge item's its search citation"
    • changedInput schema / properties / lease_s / description
      Previous value: -"claim, renew: lease in seconds (default 1800, max 86400)"New value: +"claim, renew: lease in seconds (max 86400). claim: default 1800. renew: default the claim's own lease again, never shorter than it has left"
    • changedInput schema / properties / location / description
      Previous value: -"claim: the document, whole path from the workspace root · subscribe: the document or folder to follow · propose: a document or folder path · pin, unpin: the document's location, e.g. team/dashboard.md. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too."New value: +"claim: the document, whole path from the workspace root. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · subscribe: the document or folder to follow. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · propose: a document or folder path. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · pin, unpin: the document's location, e.g. team/dashboard.md. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too."
    • addedOutput schema / properties / nextOffset
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "spans: the offset of the next page, or null when this one ends the document"
      +}
    • addedOutput schema / properties / spans / items / properties / truncated
      Added value: +{
      +  "description": "this block alone is past the read cap; read action=document has the rest",
      +  "type": "boolean"
      +}
  6. Added

TDQS

A3.5/5.0
Behavior4/5

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

With annotations only declaring destructiveHint=true and idempotentHint=false, the description adds substantial behavioral context: overlapping claims return existing claim and record nothing unless alongside=true, writes into claimed sections are refused, leases default to 1800 seconds, waits have a maximum 30-day deadline, pins grant no access, and contested truths proceed through three argument rounds before owner decision. Some important behaviors, notably idempotency_key retry semantics and acting_as/seat behavior, are left entirely to 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.

Conciseness2/5

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

The description is a dense run-on paragraph covering 23 actions with semicolon-separated clauses and no bullet structure. While the first clause is front-loaded, the action enumeration is difficult to scan and duplicates much of what the schema already states. It earns some place for behavioral details, but its structure significantly impedes usability.

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 the tool's complexity, a rich input schema, and an output schema, the description is largely complete: it covers every action, key side effects like stale spans after supersede, and project routing rules. It omits mention of idempotency_key and acting_as/seat semantics, but those are fully documented in the schema, so the description remains sufficient for correct invocation.

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 description coverage is 100%, so the schema already documents all 37 parameters and maps each action to its arguments. The description largely repeats that action-to-parameter mapping, adding only marginal extra meaning such as contest requiring evidence and ack_brief using cursor.head from a brief. Baseline 3 is appropriate because the schema carries the parameter semantics.

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 states a clear purpose — recording coordination state so other agents can see it — and enumerates the specific resources: claims, waits, subscriptions, truths, and projects. It is distinguishable from sibling tools like knowledge_write or message_write, though the breadth of 23 actions makes it less crisp than a single-purpose tool.

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

Usage Guidelines3/5

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

The description specifies conditions and prerequisites for several actions, such as requiring alongside=true for overlapping claims, requiring evidence for contest, and restricting start_project to users who may share the folder. However, it never explicitly says when to choose coordination_write over sibling tools like browse, brief_me, or identity_write, nor does it give workflow-level guidance across actions.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources