Skip to content

Role.staffed

Emitted each time a Role is staffed.

Role.staff emits Role.staffed when it completes on a Role.

PropertyValue
Emitted byRole.staff
NounRole
MovesAgent standby to seated when the Worker who fills the Role is this Agent; Agent seated to standby when another Worker fills the last Role this Agent held; Role vacant to filled
WakesOnboard into a Role

Payload

Each delivery is an Event record. data holds what Role.staff returns, and previous holds the state it left.

FieldTypeRequiredDescription
namestringrequiredRole.staffed.
atdatetimerequiredWhen it happened.
seqintegerIts position in the namespace, one more than the Event before; any seq is a cursor into the history.
datajsonrequiredThe Thing as the Action left it.
data.roleRolerequiredThe staffed Role.
data.role.namestringrequiredThe title of the seat.
data.role.responsibilitiestextThe work the seat owns.
data.role.statusstringrequiredOne of vacant or filled.
data.role.autonomyjsonHow much its agent does without asking: a rung, assist, supervised or full, with another rung per decision class where it differs.
data.previous.statusstringrequiredThe status before this Event: vacant.

Example

JSON
{
  "$id": "https://api.sb/kilnbakery.com/events/event_1",
  "$type": "Event",
  "name": "Role.staffed",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "role": {
      "$id": "https://api.sb/kilnbakery.com/roles/role_1",
      "$type": "Role",
      "name": "Kiln Bakery",
      "responsibilities": "Example responsibilities",
      "status": "filled",
      "autonomy": {
        "default": "supervised",
        "byClass": {
          "high": "assist"
        }
      }
    },
    "previous": {
      "status": "vacant"
    }
  },
  "seq": 1
}