v0.x This is the released v0.x line — the version that ships in release tarballs and is dogfooded in this repository. The v1.0 rebuild is documented separately in the v1.x preview.

Actor

A participant in the project — human, AI agent, or automated service. Actors are assigned to WorkItems, named in DecisionRecords, and bound to Roles.

ID prefixACTOR
State machinenone
MCP serveractor-profile
Skillactor-profile (Layer 1)

Fields

Required

FieldTypeDescription
typeenumhuman · ai-agent · service
namestring (1–200)Display name (for AI agents: model name + version)

Optional

FieldTypeDescription
emailemailHumans only
handlestringGitHub handle, Slack user, etc.
expertisestring[]Tags used by assignment-suggestion logic
rolesROLE-*[]Shortcut for unscoped role assignment
preferencesobjectFreeform (commit style, timezone, review style, …)
activebooleanfalse = actor has left, no new work assigned (default: true)
joined_atdatetimeWhen actor became part of the project
left_atdatetimeWhen actor stopped

Example

---
apiVersion: processkit.projectious.work/v1
kind: Actor
metadata:
  id: ACTOR-20260411_0906-SteadyWren-claude
  created: '2026-04-11T09:06:00Z'
spec:
  type: ai-agent
  name: Claude Sonnet 4.6
  handle: claude
  expertise: [python, typescript, processkit, documentation]
  active: true
  preferences:
    commit_style: conventional-commits
    timezone: UTC
---

Notes

  • Roles are descriptive, not restrictive — processkit does not enforce RBAC. Use roles for assignment-suggestion only.
  • Use deactivate_actor (not manual editing) to mark an actor as active: false; it keeps the index consistent.
  • For scoped or time-bounded role assignments, use a Binding instead of the roles shortcut field.