Decisions, the framework and commitments
Record the alternatives and the reasoning, scale the process to the stakes, keep the promise.
On this page
Where this comes from
This guide is distilled from docs/GROWTH-DECISIONS.md and src/features/growth-kit/help/content/strategy.ts. When the guide and Growth-OS disagree, that document is the one to trust, and the difference is worth reporting.





The queue is ordered by waiting
An open decision costs something every day nobody makes it, and waiting is the cost nothing else on the screen shows. Waiting is counted in whole calendar days in UTC and printed on the page, so the figures cannot drift under you while you read.
Every queued decision names what it is missing: no owner, fewer than two alternatives, no reasoning written, no date to decide by, or nothing linked. Each blocker carries a sentence saying why it stops the decision, so the next action is visible from the row. An unowned decision is counted separately, because giving it a name is the one fix that unblocks every other blocker on it.
Deciding is one action, not two
The owner writes the decision and rationale and moves the status. Closing a poll does not choose the winning option and does not mark the decision made: votes inform the owner, and the record only changes when somebody saves it. Decided against is still decided.
Anyone who can read the project may comment and cast, change or withdraw their own vote until the poll closes. Two to eight options, one per line, with a closing date and time. Once a single vote exists the options are frozen, and a different poll means a new decision.
Process should cost less than the decision
Under each decision sits a workbench. Answer how reversible the choice is and how large the stakes are, and you get one of three levels of process: just decide, one page, or a full review. Each level also names the tools it deliberately skips. Neither answer is a field on any record and neither is saved, so write the ones you chose into the reasoning if they will matter later.
The assumption register reads every strategic bet linked to the decision as an assumption it rests on. Uncertainty is 100 minus the stated confidence. How much a belief moves this decision is not on any record, so the register asks for it on screen and says which of the two it is ranking on. A belief with no confidence is unranked, and unranked is not safe.
How a decision was made and how it turned out stay apart. The process reading takes no outcome at all, so a good or bad result cannot reach it. Expected value, sensitivity, option value and base rates are described rather than computed, because they need figures no record holds.
The framework says what you can decide alone
The decision framework records the categories, decision types, authority ranges, owners and requested participants we have agreed on. Open a category and a type, and where it uses ranges, enter the proposed discount, amount or contract length to see the applicable rule. Upper limits are inclusive, and a numeric range is one part of a rule: check its other conditions too.
Creating a decision applies the matching type and range, and you can adjust the assignments and the guidance. The decision shows who has voted and who still needs to weigh in, and missing votes do not block finalizing it. Project administrators maintain the framework and save a new version when agreements change; existing decisions keep their saved plan.
A commitment is a promise to a person
Recording to whom is what separates a commitment from a task. A task is work; a commitment is an obligation to somebody, and a promise with no named recipient cannot be kept or broken in a way anyone can check.
Write the promised outcome as what they will have, not what you will do. A migration plan they can review can be delivered or not; work on the migration cannot be judged by anyone, including you. One owner and a date are required for active work, and Today lists commitments past their date as a finding of its own.
Was this page helpful?
Feedback is stored only in this browser in the starter implementation.