All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
23 lines
2.6 KiB
Markdown
23 lines
2.6 KiB
Markdown
# Fleet Role Authority and Leases
|
|
|
|
Role content describes behavior; protected authority is immutable code metadata derived only from the canonical class.
|
|
|
|
## Required workstream classes
|
|
|
|
`code`, `review`, `validator`, `orchestrator`, `team-leader`, `enhancer`, and `interaction` are required FCM classes. `merge-gate` is additionally protected because it remains the sole approve-to-land and merge authority.
|
|
|
|
| Class | Authority | Boundary |
|
|
| -------------------------------------------- | ------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
|
| `merge-gate` | Approve-to-land and merge | Sole merge authority. |
|
|
| `validator` | Issue independent validation evidence/certificate | Never approves landing or merges. |
|
|
| `orchestrator` | Orchestrate topology and issue bounded leases | Does not gain merge authority. |
|
|
| `team-leader` | Use explicitly leased capacity | Cannot issue leases or mutate roster, credentials, topology authority, or merge state. |
|
|
| `interaction` | Receive requests and report status | Cannot orchestrate, issue leases, mutate configuration, or merge. |
|
|
| `code`, `review`, `enhancer`, custom classes | No protected authority by default | Persona prose cannot grant protected powers. |
|
|
|
|
A lease is capacity authorization from an orchestrator, not ownership. It must identify a bounded task or period and does not alter the leased agent's roster identity, role contract, credentials, authority, or persisted lifecycle. Expiry/revocation returns capacity; it does not rewrite the roster.
|
|
|
|
Semantic validation rejects protected class/tool-policy mismatch in either direction. An instance named Ultron with `class: validator` remains validation-only. An instance named Tess with `class: interaction` remains request/status-only. Renaming either instance changes no authority.
|
|
|
|
For resolver layering and safe customization, see [role classes](../reference/role-classes.md) and [customize roles](../how-to/customize-roles.md).
|