WRITE

record_decision_draft

Record a decision in a project as proposed, numbered from the decisions' sequence, with its context, the options weighed and what is proposed, for a person to accept or reject.

Add a decision to a project as proposed: title (required), kind (architecture by default), context (the situation and the forces at play), options (rows of title, pros and cons), decision (what is proposed) and consequences (what follows). The decision takes the next number of the decisions' sequence (CRM-DEC-5), starts proposed, writes its first version and goes out as decision.created. Record a draft when a conversation, a story or a design settles a choice that nothing records yet; give the context, at least two options with their trade-offs and the consequences, and leave the acceptance to a person.

Only a proposal is recorded here. Accepting, rejecting, changing and deleting decisions, and naming the deciders and the decision it supersedes, stay with people on the Decisions page or over the REST API.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Fires one event

Delivered to every endpoint subscribed to it once the change is made.

Arguments

project_id*string

UUID of the project the decision belongs to.

title*string

What the decision is called, 3 to 200 characters.

kindstringoptional

The kind; architecture by default.

architectureproductprocessvendorsecurity
contextstringoptional

The situation and the forces at play, as HTML.

optionsobject[]optional

The options weighed, up to ten rows, each with a `title` (required), its `pros` and its `cons`.

title*string

What the option is, up to 200 characters.

prosstringoptional

What speaks for it, up to 1,000 characters.

consstringoptional

What speaks against it, up to 1,000 characters.

decisionstringoptional

What is proposed, as HTML.

consequencesstringoptional

What follows if it is accepted, as HTML.

What it returns

{  "data": {    "id": "a8b9c0d1-e2f3-4a4b-9c5d-6e7f8a9b0c13",    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",    "number": 5,    "reference": "CRM-DEC-5",    "kind": "architecture",    "title": "Queue the digests through Redis",    "context": "<p>The digests must not block the web requests.</p>",    "options": [      { "title": "Redis queues", "pros": "Already in the stack", "cons": null },      {        "title": "A managed queue service",        "pros": null,        "cons": "Another vendor"      }    ],    "decision": "<p>Redis queues, one worker per project.</p>",    "consequences": "<p>Each project gets its own queue worker.</p>",    "status": "proposed",    "decided_on": null,    "deciders": [],    "supersedes_id": null,    "supersedes_reference": null,    "position": 4,    "created_at": "2026-10-28T09:20:00+00:00",    "updated_at": "2026-10-28T09:20:00+00:00"  }}

How it fails

RESOURCE_NOT_FOUND

unknown project_id, or a project outside the token's scope or the person's visibility.

VALIDATION_FAILED

title is missing or longer than 200 characters, an option lacks its title, or kind is not one of its values.

FORBIDDEN

the person's role on the project does not carry decision:create, or the token is a client guest's.

TOKEN_MISSING_ABILITY

token lacks decision:create.

How is this guide?

Last updated on