Tool reference · Tasks, workflows & decisions
save_decision
Saves an architectural decision with the options considered, a scoring matrix, the choice and the reasoning.
local stdio server writes
When to use
- You compared two or more approaches and picked one.
- You want the rejected options and their drawbacks kept for later.
- A reviewer will ask why a technology was chosen.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
titlerequired | string | — | Short decision title |
optionsrequired | { name, pros, cons, unknowns }[] | — | Options considered: [{name, pros[], cons[], unknowns[]}, ...] |
criteria_matrixrequired | object | — | criterion -> {option_name: rating 0-5} |
selectedrequired | string | — | Chosen option name (must be in options) |
rationalerequired | string | — | Why this option was chosen |
discarded | string[] | — | Option names rejected (subset of options - {selected}) |
project | string | — | — |
tags | string[] | — | — |
Example
Arguments
{
"title": "Queue backend for email jobs",
"options": [
{
"name": "Redis",
"pros": [
"Already deployed"
],
"cons": [
"No durable acknowledgements"
]
},
{
"name": "RabbitMQ",
"pros": [
"Durable queues",
"Dead-letter support"
],
"cons": [
"New service to run"
]
}
],
"criteria_matrix": {
"durability": {
"Redis": 2,
"RabbitMQ": 5
},
"ops_cost": {
"Redis": 5,
"RabbitMQ": 3
}
},
"selected": "RabbitMQ",
"rationale": "Lost emails are not acceptable; durability outweighs running one more service.",
"discarded": [
"Redis"
],
"project": "notifications",
"tags": [
"queue"
]
} Result shape
{
"saved": true,
"id": 4821,
"structured": true
} Stored as a normal decision record tagged "structured", so memory_recall finds it. Invalid input returns saved: false with an error.
Values are illustrative; the keys follow the server's handler. MCP clients receive the result as JSON text content.
Server description
The description the server sends to your agent in tools/list, captured from the v14.7.0 source:
save a structured architectural decision (options + criteria matrix + rationale + discarded). Adds `structured` tag and a JSON blob in context. Use for Creative-phase outputs; plain type=decision memory_save still works.