Founding Hypothesis
One sentence with five slots names the customer, the Problem, the approach, the switch and the edge, each graded by outside Evidence.
A Startup authors one record, the Founding Hypothesis: one sentence with five slots, each graded by outside Evidence. Everything the Startup says, sells and measures compiles from it.
One sentence, five slots
The sentence has a fixed shape. Each slot is a child Hypothesis with its own Metric and threshold, and each points at a record.
If we help {customer}
solve {problem}
with {approach},
they choose it over {switch}
because {differentiation}.| Slot | Sentence | Points at | Cheapest test | Holds when |
|---|---|---|---|---|
customer | If we help [ICP] | ICP | Interview | The customer slot names the ICP, and holds while a selector returns real Prospects who reply. |
problem | solve [Problem] | Problem | Interview | The problem slot names the Problem the ICP pays to solve today, and what solving it costs them. |
approach | with [Product Template] | Product Template | Smoke page | The approach slot names the Product Template the Startup bets on, with one backup approach. |
switch | they choose it over [Organization] | Organization | Pre-sale | The switch slot names the Organization the ICP hires today, and holds when they pay to leave it. |
differentiation | because [Metric] | Metric | Fake door | The differentiation slot names the two axes on which the Startup wins, each measured by a Metric. |
Agents draft the sentence from a cell on the opportunity map. The Founder edits the draft and commits it, then sets one number beside it: the Minimum Success Criteria.
Grades, not filled fields
Each slot shows the strongest grade among its outside Evidence. Behavior beats Commitment, and Opinion weighs the same as no Evidence at all: zero. A compliment moves no slot.
Lifecycle gates read grades, never fields, so typing into a slot passes nothing.
| To enter | Slots at Commitment or Behavior, from outside people |
|---|---|
| Building | customer, problem, switch |
| Live | all five |
Everything compiles from it
The sentence is the source. The Story, the Offer and its Price, the Site copy, the Personas and the first Plays are compiled from it, never written beside it.
Every output carries its lineage as from:. A headline traces back through the Story to the slot and to the Evidence behind it. An edit to an output is kept as an override that names its source.
A pivot is a diff
An edit to the sentence is a Change. Its preview shows every output the edit recompiles before it merges. A merged Change adds a version, and every version stays on the record.
A pivot is the diff between two versions, named for the slot that moved. It carries the Evidence that forced it.
Write it
The sentence lives in startup.ts under hypothesis, one key per slot, each a phrase. The approach names its Product Template, and the differentiation names its two axes.
import { Startup } from 'startup-builder'
export default Startup({
name: 'Platecost',
domain: 'platecost.app',
extends: 'solo-saas',
hypothesis: {
customer: 'Independent restaurants with one to three locations',
problem: 'Food-cost drift from changing supplier prices',
approach: 'A SaaS that recomputes plate costs from every invoice they photograph',
switch: 'The spreadsheet and the bookkeeper',
differentiation: 'Margins the same day, as a cost per plate',
},
})npm create startups takes the same object as hypothesis in its --json input. On a running Startup, each slot is its own Hypothesis under the root, hypothesis_1, and every Interface writes one with Hypothesis.create:
curl -X POST https: //api.sb/ platecost.app/ hypotheses \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"kind": "problem", "parent": "hypothesis_1", "statement": "Food-cost drift from changing supplier prices"}'A slot starts at version 1 with the grade None. To edit a slot, change it in startup.ts and run npx startup-builder dev, which previews the Change and every output it recompiles.
To read the grades back, ask for the record:
npx startup-builder show /hypothesis --fields slot, grade, nextplatecost.app Founding Hypothesis v1 state Idea
slot grade next
customer Commitment met
problem Commitment met
approach None Smoke page
switch Commitment met
differentiation Opinion Fake door
pass Three slots at Commitment building-slots 3 of 3next names the cheapest rung on the test ladder that lifts the slot to Commitment. The differentiation slot holds Opinion, so it counts zero and still blocks Live.
Example
platecost.app: three compiled outputs, each with its lineage
Reserve page headline "Stop rebuilding the food-cost sheet every weekend." from: Hypothesis#problem@v1
Price anchor $79 a month against a $400 bookkeeper from: Hypothesis#switch@v1
Story one-liner "Margins per plate, updated the morning an invoice lands." from: Hypothesis#differentiation@v1Next
- Minimum Success Criteria: the number beside the sentence.
- Weekly test: the weakest slot each week, and the one test that grades it.
- Canvases: the lean canvas, the Story and the job, rendered from the slots.