Docs Start here
Who does each setup step
The rule: nothing in Steward asks a person to do something an agent can do.
A person is asked only for what needs one:
- making or signing in to an outside account in their name
- getting a key or password from an outside service
- paying or spending money
- legal and identity acts: agreeing to terms, signing, giving a real address
- first contact with real people
- the owner approvals the trust ladder asks for (those come as cards)
@steward does everything else. When a step does need a person, it says why in one line and exactly what to get.
Each step has an id like yourbusiness.resend-key. steward setup lists them, and steward skip, steward later and steward unskip change them (see Command line).
The setup checklist (each business's operating plan)
Keys and accounts: a person
Each key goes on the server, never in a chat: steward key set <business> <NAME> prints the safe way.
| Id ends in | What to get | Why only a person |
|---|---|---|
resend-key | A Resend account, the business's domain added to it, and an API key | Steward can't sign up for accounts in your name. |
bluesky | The business's Bluesky account and an app password, then its handle | Steward can't sign up for accounts in your name. |
facebook-token | The business's Facebook Page (with Instagram linked) and its Page token | Only you can sign in to Facebook as yourself. |
whatsapp-token | WhatsApp Business for the business's number, and its token | Only the number's owner can verify it with Meta. |
stripe-key | The business's Stripe secret key | A Stripe account is tied to your identity and bank. |
github-token | A GitHub token that can reach the repository | Only the repository's owner can give access. |
railway-token | A Railway token for the project | Only the project's owner can give access. |
cloudflare-token | A Cloudflare token for the domain | Only the domain's owner can give access. |
| any other key | The integration's key | It comes from an outside account in your name. |
Settings: @steward
@steward finds the value and sets it. Each one goes through the trust ladder.
| Id ends in | How @steward finds it | Through the ladder |
|---|---|---|
github-repo | A pinned GitHub link, or the repositories the GitHub token can reach, named like the business. None: nothing to set yet, it looks again in a week | Runs (internal) |
github-base | The repository's default branch on GitHub | Runs |
railway-project, railway-service, railway-environment | A task for @steward to look them up with its Railway tools | Runs |
health-url, health-minutes | The site's /health, else the site; 10 minutes | Runs |
email-from, email-reply-to | hello@ the business's own domain. No domain yet: nothing to set | A card the first time: it changes where the business's email comes from |
facebook-page-id, instagram-user-id | Read from the Page token | Runs |
cloudflare-zone | The domain's zone in Cloudflare | Runs |
whatsapp-phone-id | A task for @steward | Runs |
refund-auto-limit | Only when asked | Always a card (money) |
github-autodeploy | Only when asked | A card (it changes what goes live) |
bluesky-handle | A person: it's the name of the account they make | (a person's step) |
switch-on-<integration> | Once its keys and settings are in | A card: an owner's yes to let @steward use it |
The loops: mostly @steward
| Id ends in | Who | What |
|---|---|---|
site | @steward | The site address: a pinned Site link, the health check's host, the domain, or the business's page on the studio. It must answer |
support-inbound | @steward | The support inbound address. Its secret is never shown to an agent; owners see it with steward inbound <business> |
support-forward | A person | Forward the business's support mail to the inbound address. Steward can't reach your mailbox |
postal-address | A person | The business's real postal address, for email footers. The law asks for it; Steward can't make one up |
Only what's used this month
A step for a channel or loop is in Needs you only when the business uses it now:
- Email: new waitlist signups, an approved email sequence, or support tickets this month.
- A social network: posts on the growth calendar this month.
- Anything: @steward tried to use it this month and couldn't, because it isn't set up.
- Support forwarding: the business has a support mailbox (a from or reply-to address).
The rest is Later. It comes back by itself when something needs it. An owner can also skip a step, or put it off, and undo that.
The launch checklist (the Launch page)
| Step | Who | Why a person, when it is |
|---|---|---|
| Charter confirmed | A person | An owner's yes on the goals and the kill line |
| Domain | A person | Buying it is spending money. @steward suggests and checks names |
| Email on the domain | A person for the Resend account and the Cloudflare token; @steward sets and checks the records | Outside accounts |
| Landing page, waitlist, analytics | @steward | |
| Stripe | A person for the key; @steward makes the payment link | A Stripe account is tied to your identity and bank |
| Terms and privacy | @steward drafts; an owner's yes publishes | Agreeing to legal terms |
| Support inbox | @steward makes the inbound address (the loop comes with the plan); a person forwards the mail | Steward can't reach your mailbox |
| Social handle | A person | Steward can't sign up for accounts in your name |
| First content, launch announcement | @steward, through the trust ladder | |
| First customer | @steward reaches out; owners close | First contact with real people |
| First dollar | @steward records it | |
| Entity, EIN, bank, Stripe verification, App Store | A person | Legal and identity acts |
Other places Steward asks a person
- Cards. Every card is an owner approval the trust ladder asks for. Nothing else becomes a card.
- Held handoffs. Work that started from outside text waits for its agent's owner to tap Go ahead. Once that work has run (a reply in its thread, a later job on the same task, or Go ahead), it isn't held any more.
- The Monday brief and what_needs_me. Only a person's steps that are for now, and cards. Each step says why.