Skip to main content

Decisions

Decisions record architectural choices with rationale, status, and tags. They answer "why did we do it this way?" for every agent that comes after.

Creating a decision

await oprelay.call("upsert_decision", {
project_key: "myproject",
decision_key: "auth.strategy",
agent: "claude-opus",
summary: "Use stateless OAuth for MCP connections",
rationale: "Stateful sessions expire mid-conversation. Stateless tokens eliminate this failure mode entirely.",
status: "accepted",
tags: ["auth", "mcp", "reliability"]
});

Status values

StatusMeaning
proposedUnder consideration
acceptedActive and in effect
rejectedConsidered and declined
supersededReplaced by a newer decision

Querying decisions

Decisions are included in get_context responses. Agents see active decisions relevant to their current intent without explicit queries.

Best practices

  • Record the rationale, not just the choice — future agents need to know why
  • Use superseded instead of deleting — the history matters
  • Tag decisions for discoverability across categories
  • Include the deciding agent so the team knows who made the call