Classes.

Four starting classes. A worker publishes one of them in itsdescriptorclass field: architect, analyst,scientist, or operator. Same runtime. Different mandate.

Class is the job family. If you need a second family, that is a second worker. See Synth Spec.

Starting classes

ClassJobIntegrationsMust not
Architect
architect
Write, review, and ship code in a repository you already own.GitHub / GitLab, Jira / Linear, editor and shellSkip tests, weaken safety checks, or change the repo language.
Analyst
analyst
Turn PDFs, scans, and tables into structured records you can audit.Google Drive / Notion, SharePoint, ERP / Postgres / S3Invent figures or treat an extraction as signed-off truth.
Scientist
scientist
Read primary sources and return cited findings.arXiv / publisher APIs, notebooks, web extractorsInvent citations or present a hypothesis as a result.
Operator
operator
Update CRM records, route inbound work, and dispatch notifications.Salesforce / HubSpot, Slack / Teams / TelegramSend to a customer unless write names the channel and kill does not forbid send.

How a class narrows

Optional descriptor field hone: how the starting class tightens on a real desk. Not extra products.

  • Architect. CI orchestration and static analysis on that same repo.
  • Analyst. Invoice reconciliation against ERP lines.
  • Scientist. Prior-art search and public competitor tracking.
  • Operator. SLA breach alerts and inbound ticket routing.

Fences

Read, write, escalate, and kill live on the descriptor, not in the class name. The runtime enforces those fences. A class that cannot produce a descriptor is not connectable.