Record a decision
record_decisionRecord an immutable decision with its rationale and rejected alternatives, so later readers can understand why a choice was made and search whether an option was already declined.
Instructions
Record a decision into the mnema chain, attributed to this agent and pinned to the current session. A decision needs both a title and a rationale (why it was made). Optionally record what you considered and turned down, and why not (alternatives): the reasoning a later reader needs when somebody proposes the thing you already rejected; it is searchable, so search answers "did we already turn this down?". A decision is immutable, so it is recorded now: an option rejected later is a new decision, or supersedes this one. Optionally pick the scope it lands in: public (team-visible), private (this machine, this project), or global (personal, cross-project); omitted, a decision is a declaration about the project and lands PUBLIC: committed, so the team gets it on clone (global outside a project); it is born proposed, so recording one proposes it rather than settling it. Optionally pick the project it lands in, when the workspace holds more than one. Returns the citable ADR- label (a decision has no short alias) and which tree it landed in. RECORDING IS PERMANENT: mnema is append-only and nothing deletes a fact. A record in the public scope is committed to the repository and reaches every machine that clones it (published, if that repository is public). So do NOT record credentials here. Values in a recognized format (cloud keys, API tokens, private keys, a password inside a URL) are replaced with a typed placeholder before anything is written and the reply says what was replaced, but a format mnema does not recognize is written verbatim and cannot be taken back. Do not record personal data either: an email address is replaced with and reported, and the mnid already says who wrote. Each text field holds at most 65536 bytes; a longer one is refused, not truncated.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"title": "<title>",
"rationale": "<rationale>"
},
"name": "record_decision"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Where the decision lands; overrides the routing rule (public). | |
| title | Yes | The decision title. | |
| project | No | Which project of this workspace the fact belongs to: its absolute path, as this server gave it; a bare name is refused. Omitted, it lands in the project this session resolved to (the one `bootstrap` names). Pass it whenever the work being recorded happened in a different project of this workspace. | |
| rationale | Yes | Why the decision was made. | |
| alternatives | No | What was considered and turned down, and WHY NOT: both halves; the name of a rejected option without its reason loses most of the value. Omit it when there was no real alternative. |