propose_decision
Propose a decision for a scope—rule, architecture, or principle—with rationale, rejected alternatives, and review date. Uses version checks to prevent conflicting updates.
Instructions
Propose a decision (rule, architecture or principle) for a scope, with optional rationale, rejected alternatives and review date. Uses optimistic concurrency: baseVersion must equal the decision's current version (0 for a new decision), otherwise the call fails with a conflict. Owner-scoped decisions bind immediately; shared or cross-cutting ones stay open until acknowledged.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reviewAt | No | ISO date when the decision should be revisited, for example 2026-12-01. An invalid date is rejected. | |
| ruleText | Yes | The decision itself, stated as a clear rule others can follow. | |
| scopeRef | Yes | Identifier within that kind, for example http:POST /session for a surface, a repo name, or a topic name. | |
| rationale | No | Why, in one or two sentences (the ADR context). | |
| scopeKind | Yes | What kind of thing the decision is about. Kinds used by the ledger are surface, repo, topic, project, capability, shared and contract; the value is not validated here. | |
| baseVersion | Yes | Current version of the decision for this scope, or 0 when proposing a new one. A stale value fails with a conflict; read decisions first to get it. | |
| alternatives | No | Options considered and rejected, one string each. | |
| decisionType | No | Kind of decision. Defaults to rule when omitted. | |
| capabilityRef | No | Capability or feature reference to attach. Defaults to the one set with set_feature_context. |