Skip to content

Workers

A Worker is a Human or an Agent in a Role; both call the same Verbs, take the same Tasks, and pass the same checks.

A Worker is whoever fills a Role: a Human or an Agent. Both perform the same Verbs through the same calls, so a Role changes hands without changing any code.

One Verb set

All work in a Startup is a Verb on a Noun: Order.refund, Offer.publish, Issue.triage. A Role holds Permissions to a set of those Verbs, and whoever fills it gets exactly that set.

No Verb exists only for people or only for models. A founder who refunds an Order from an App calls Order.refund, the Verb an Agent calls from code. The Action record is the same, with a different by.

Filling a Role

Staff seats a Worker in a Role. The seat is the grant: no separate membership record exists, so unseating a Worker removes every Permission it held there.

A Role can seat several Workers. A Human invited into a Role shares it with the Agent already there, and each Task goes to one of them.

TypeScript
import { $ } from 'startup-builder'

// A person joins Sales; the Role's Agent keeps working beside them.
await $.Human.invite({ email: 'rosa@example.com', role: 'sales-lead' })

// Seat a different Agent as Customer Lead.
await $.Role.staff({ role: 'customer-lead', worker: 'worker_7' })

Tasks and the worklist

Work waiting on a Worker is a Task: an Action paused with reason awaitingWorker, an assignee and a due time. Assign puts a Task in one worklist, claim takes one from a shared queue, and complete finishes it.

Humans read their worklist in an App, a Mailbox or a Channel. Agents drain it through the CLI or MCP with next, claim, done and release. A claim holds a 15-minute lease, so two Workers never do the same Task.

A Task closes when its checks pass, never on a Worker's word. A failed check reopens it to the Worker that claimed it, and after three failures it returns to the queue.

The same checks for everyone

Every Action passes three checks in order: Permission, then Limit, then Guards. The checks run below every Interface, so no Worker reaches a Verb around them.

A Verb outside the Role's Permissions starts as an Action already refused. A Verb over a Limit waits for an Approval, whoever calls it: a person with a $100 refund Limit waits exactly as an Agent does.

Where people differ

The law reserves some acts to people. A Reserved Act belongs to the holder of a named Credential, so the Agent prepares the work and a credentialed Human performs the act.

Humans also answer more slowly, so their Tasks carry longer due times and reach them where they already read. Beyond those two differences, the record treats every Worker alike.

Agents fill every Role by default. A Human joins where the law requires one or the founder wants one. No Human sits in the critical path of work an Agent can finish.

Example

A tutoring Marketplace seats its first Human, a former teacher, as Supply Manager to interview tutors. The Agent in the Role keeps screening applications and books each finalist into her worklist. Her interviews and its screens sit on one record, each Action marked with its by.

Next