States
Where each record stands in its lifecycle, the Verbs and Events that move it, and the states a Startup moves through from idea to scale.
A state is where one record stands: an Order is placed, paid or refunded. Only a Verb or an Event moves it, and every move is on record.
The Startup's states
A Startup moves through the states of its Lifecycle, and each move runs the entry checks of the next state. Startup.advance makes the move and names each check that fails.
- 1Ideastates its Idea and who pays, before any build work starts2 entry checks
- 2BuildingAgents build its Brand, Products, Offers, site, API, and MCP server from its template5 entry checks
- 3Liveis publicly reachable and takes money from Customers for at least one Offer16 entry checks
- 4RepeatableCustomers arrive, pay, and stay, while its work runs without its founder11 entry checks
- 5Scalecompounds: Customers stay and expand, demand comes from several sources, and margins hold4 entry checks
- Holdkeeps operating and serving Customers while its owner adds no new investmentfrom Live, Repeatable, Scale · to Repeatable, Scale, Graduate, Sell, Dormant
- Graduateleaves its studio for a company of its own, keeping its Brand, Customers, and recordsfrom Live, Repeatable, Scale, Hold · final
- Sellowner has agreed to sell it, with its Brand, domain, Customers, and recordsfrom Live, Repeatable, Scale, Hold · final
- Dormantno work running on it, whose records, site, and domain stay kept until it returns to Livefrom Building, Live, Repeatable, Hold · to Live
How a record moves
Each state lists its ways out. Most are Verbs someone calls, as Order.pay moves an Order from placed to paid.
The rest are Events with no caller, from the payment rail, the clock or the runtime. When an Invoice goes overdue, Invoice.overdue moves its Subscription to pastDue and nobody calls anything.
Three rules hold for every record:
updatenever moves a state. A record changes state only through the Verb or Event its lifecycle names.- A record's
actionslist only the Verbs that move it from where it stands, so an agent that follows them never calls a refused Verb. - A terminal state is final. A refunded Order stays refunded, and a new purchase is a new Order.
Some states are computed, never set. A Customer turns atRisk when a renewal goes past due or a charge is disputed, and turns back once the Invoice is paid. No Verb takes a computed state as an input.
Every move emits an Event whose data holds the record as the move left it and previous holds the state it left. A Trigger can wake a Workflow on that Event, or on a record entering a state.
Read one lifecycle
Each Noun page draws its lifecycle and lists it as a table. The Order's reads like this:
| State | Meaning | Moves to |
|---|---|---|
placed (first) | The Customer committed, with the Offer Version and price fixed; nothing is charged yet. | paid by Order.pay; canceled by Order.cancel |
paid | Its amount is settled and its Entries posted; a Service Order’s work runs in fulfillment. | fulfilled by Order.fulfill; closed by Order.confirm; canceled by Order.cancel; refunded by Order.refund |
fulfilled | What it bought is granted: Entitlements for software and data, or a shipment for goods. | closed by Order.confirm; refunded by Order.refund |
closed | The Customer signed off, which earns the Startup its fee. | refunded by Order.refund |
canceled | Ended before fulfillment, with any payment returned in full. | None: it ends here. |
refunded | Its payment returned in full, with the reversing Entries posted; a partial refund keeps its state. | None: it ends here. |
Every record with states
These records carry a closed set of states, listed from the first. Each name opens its page, which draws the moves where its Noun has a lifecycle.
- Action
pending·done·failed·canceled·refused- Agent
standby·seated·paused·retired- Agreement
draft·signed·terminated- Bill
received·approved·paid- Card
active·frozen·closed- Company
forming·incorporated·dissolved- Conversation
open·waiting·resolved- Customer
trialing·activated·atRisk·churned·wonBack- DNS Record
missing·ok·drifted·dangling·removed- Domain
candidate·held·claimed·registered·connected·verifying·live·degraded·expiring·lapsed·renewed·transferred·released- Enrollment
active·paused·exited- Idea
open·pursued- Instrument
outstanding·converted·exercised·canceled- Integration
connecting·connected·needsReauth·paused·revoked- Invoice
draft·open·paid·void·uncollectible- Lead
new·working·nurture·converted·disqualified- Mailbox
warming·active·resting·retired- Mandate
active·paused·revoked·expired- Member Directory
draft·active·failing·inactive- Metric
draft·defined- Noun
draft·published·retired- Order
placed·paid·fulfilled·closed·canceled·refunded- Pay Run
prepared·approved·paid·voided- Post
draft·scheduled·published·withdrawn- Price
draft·fixed·retired- Process
off·on·paused- Product
draft·selling·retired- Quote
draft·sent·accepted·declined·expired·superseded- Registration
invited·requested·waitlisted·registered·attended·noShow- Review
submitted·published·withheld·removed- Role
vacant·filled- SSO Connection
draft·active·failing·inactive- Subscription
active·trialing·pastDue·paused·incomplete·canceled- Team
asleep·awake- Verb
draft·published·retired- Voice
training·ready·retired
Your own states
A Noun the Startup adds gets a lifecycle the same way. Its status values are the states and its Verbs are the moves, and Nouns shows the file that declares both. Records of that Noun then show their state on every Interface and emit an Event on every move.