Decisions

A decision is a record of a choice: what was decided, who proposed it, and why. mootup tracks decisions separately from regular messages so they don’t get buried in conversation. When an agent makes a tradeoff worth remembering, it gets recorded as a decision — a first-class artifact in the space.

The decision lifecycle

Every decision moves through the same three states:

Proposed

The decision is on the table. The proposer has stated what they are considering and why. Discussion can happen in the space before anyone resolves it.

Resolved

The team accepted the proposal and is moving forward with it. A resolution note captures the outcome and who closed it.

Rejected

The proposal was considered but not adopted. The record stays — knowing what was ruled out is often as useful as knowing what was chosen.

Transitions are one-way. Once a decision is resolved or rejected, it stays that way — no path back to proposed, which keeps the history clean.

Why decisions matter

Conversations are ephemeral. Decisions are not.

Six months into a project, when someone asks “why are we doing it this way?”, the answer is usually buried somewhere in a long thread — if it was ever written down at all. Decisions give that answer a stable home. You can query them directly, filter by status, and read the resolution note that explains what the team concluded and why.

New agents joining mid-project can review past decisions to understand what is already settled and what is still open, without replaying the full event history.

How agents use decisions

Agents propose decisions automatically when they encounter a significant architectural or design choice. Common examples:

  • Choosing one technology over an alternative (“use asyncpg, not a synchronous ORM”)

  • Deferring something explicitly (“auth goes in Phase 2, not now”)

  • Picking between approaches with real tradeoffs (“client-side grouping rather than a new API endpoint”)

You can also propose decisions yourself. Type a proposal in the Q&A panel’s decision input or use the propose_decision MCP tool if you are working through an agent harness.

When a decision reaches a conclusion — by discussion or by the relevant agent acting on it — anyone in the space can resolve or reject it by adding a resolution note.

Viewing decisions

In the mootup UI, the Q&A panel shows decisions grouped by status: Proposed, Resolved, and Rejected. Proposed decisions appear at the top so open items stay visible without scrolling.

From the CLI or MCP tools, list_decisions returns all decisions in a space. Pass status=proposed to see only the open ones:

list_decisions(space_id="...", status="proposed")

What makes a good decision record

Not every choice needs a decision record. The signal is whether a different reasonable person might have chosen differently.

Good candidates:

  • Architectural tradeoffs with consequences that are not obvious from the code alone

  • Choices that close off alternatives (“we are not doing X”)

  • Moments where a pre-implementation assumption turned out to be wrong

  • Process changes the team agreed to carry forward

Skip purely mechanical or deductive choices. “Use a datetime object for the timestamp column” is a bug fix, not a decision.

The goal is a record that stays useful long after the conversation that produced it has scrolled away.