Roles

June 24, 2026 ยท View on GitHub

RoleDefinition is a first-class protocol entity.

Taxonomy V1 example roles include:

  • coder: implementation, code review, debugging, migration, and code explanation work.
  • security: security audit, threat modeling, incident review, privacy review, and safe prompt review work.
  • researcher: web research, source comparison, fact checking, literature review, and current documentation lookup.
  • product: product requirements, user stories, acceptance criteria, workflow review, and launch readiness.
  • support: ticket triage, customer replies, escalation, runbook updates, and status communication.
  • health: general health information, safety framing, appointment preparation, and wellness planning.

Each role defines supported task families, required/preferred/forbidden capabilities, tool policy, routing overrides, and output contracts.

The router interprets roles as executable policy, not just labels. A role definition must be rich enough to answer:

  • which task types the role may serve,
  • which capabilities are mandatory, preferred, or forbidden,
  • whether tools are disabled, limited, or allowed,
  • which routing-policy fields should be overridden for requests using that role.

Runtime attachment happens through RoleBinding. A binding ties one role to one endpoint and carries effective_capabilities plus effective_task_types after local policy or operator restrictions are applied. Binding status is part of the routing contract:

  • active: the binding may be considered during routing,
  • inactive: the binding is known but excluded from routing,
  • disabled: the binding is explicitly blocked and must surface a distinct exclusion reason.