Startup programs: advance, build, graduate
The Startup Verbs advance, build, graduate as MCP do programs, with inputs, result, refusals and an example.
Reference for Startup, one group of Startup programs.
Startup.advance
Advance moves a Startup to its next Lifecycle state once every entry check of that state passes. Verb page.
do: return await $.Startup.advance(input)Emits Startup.advanced.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
startup | Startup | required | The Startup to advance. |
to | string | The target state. Defaults to the next state. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
startup | Startup | required | The Startup in its new state. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| Any entry check of the target Lifecycle state | refused | Pass each check the error names, then call it again. | None. |
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
{
"name": "do",
"arguments": {
"code": "return await $.Startup.advance({ startup: 'startup_l3hr1EnUGY' })"
}
}Startup.build
Build provisions the Systems, Sites and Interfaces a Startup’s definition declares, and moves the Startup to Building. Verb page.
do: return await $.Startup.build(input)Emits Startup.built.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
startup | Startup | required | The Startup to build. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
startup | Startup | required | The Startup, now Building. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
Template chosen (building-template) | refused | Name a Startup Template in the definition. | Startup.update |
Problem stated (building-problem) | refused | Write the problem slot with its workarounds and why now. | Hypothesis.create |
Brand named (building-brand) | refused | Give the Brand a name, a voice, a logo, and a theme. | Brand.update |
Products declared (building-products) | refused | Set the kind of every Product. | Product.update |
Three slots at Commitment (building-slots) | refused | Run the cheapest test on each slot below Commitment, such as a reserve deposit. | Experiment.start |
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
{
"name": "do",
"arguments": {
"code": "return await $.Startup.build({ startup: 'startup_l3hr1EnUGY' })"
}
}Startup.graduate
Graduate moves a Startup to a Company of its own, with its Customers, Domains and records intact. Verb page.
do: return await $.Startup.graduate(input)Emits Startup.graduated.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
startup | Startup | required | The Startup to graduate. |
company | Company | required | The Company that holds it next. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
startup | Startup | required | The Startup, held by its new Company. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
Company of its own (graduate-company) | refused | A company of its own holds the Startup, with its Brand, Customers, and records moved intact. | None. |
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
{
"name": "do",
"arguments": {
"code": "return await $.Startup.graduate({ startup: 'startup_l3hr1EnUGY', company: 'company_28zYNZEno0' })"
}
}