Skip to main content

Role

A named set of responsibilities. Roles are descriptive — they document who is expected to do what, but do not enforce access control.

ID prefixROLE
State machinenone
MCP serverrole-management
Skillrole-management (Layer 1)

Fields

Required

FieldTypeDescription
namestring (1–100)Kebab-case identifier matching the metadata.id suffix
descriptionstringOne-sentence purpose statement

Optional

FieldTypeDescription
responsibilitiesstring[]Imperative bullet points — concrete, not vague
skills_requiredstring[]Skill IDs or names (advisory, not enforced)
default_scopeenumproject · sprint · permanent — assumed scope when binding without an explicit one
supersedesROLE-*Role ID this one replaces

Example

---
apiVersion: processkit.projectious.work/v1
kind: Role
metadata:
id: ROLE-20260411_0907-ClearOak-tech-lead
created: '2026-04-11T09:07:00Z'
spec:
name: tech-lead
description: Owns technical direction and architecture decisions.
responsibilities:
- Review and approve architectural decisions (DEC)
- Unblock teammates on technical questions within 24 hours
- Run weekly engineering sync
skills_required: [software-architecture, code-review, decision-record]
default_scope: project
---

Notes

  • Roles describe responsibilities, not permissions. processkit does not enforce RBAC.
  • A global, unscoped assignment can use the Actor's roles field directly. For a scoped or time-bounded assignment ("Alice is tech lead on Project X for Q2"), create a Binding instead.
  • link_role_to_actor creates the shortcut entry on the Actor entity.