41 lines
2.5 KiB
Markdown
41 lines
2.5 KiB
Markdown
# Legacy Fleet Class Aliases
|
|
|
|
Fleet class compatibility is intentionally narrow. The shared resolver accepts exactly three legacy
|
|
class names and converts them to canonical classes before persona lookup:
|
|
|
|
| Legacy value | Canonical value | Migration action |
|
|
| ---------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
| `implementer` | `code` | Replace class and tool-policy references with `code`. |
|
|
| `reviewer` | `review` | Replace class and tool-policy references with `review`. |
|
|
| `operator-interaction` | `interaction` | Replace class and roster-v2 tool-policy references with `interaction`. The legacy service artifact remains compatible. |
|
|
|
|
Alias support preserves existing inputs while provisioning and typed semantic output use canonical
|
|
identities. Requested and canonical class values remain separately observable during semantic
|
|
validation.
|
|
|
|
## Lookup and override behavior
|
|
|
|
Canonicalization precedes baseline and `roles.local` lookup. A legacy-named override such as
|
|
`roles.local/implementer.md` is not a separate authority and is not selected for an `implementer`
|
|
request. Customize the canonical role instead, for example `roles.local/code.md`.
|
|
|
|
The compatibility file `operator-interaction.md` remains shipped, but `interaction` is the canonical
|
|
role class. Tess is an example display name only.
|
|
|
|
## Unresolved and custom classes
|
|
|
|
No names are inferred from historical usage, instance names, or similar wording. `worker`, `analyst`,
|
|
`canary`, Tess, and Ultron are not aliases. An otherwise unknown class is accepted only if the shared
|
|
resolver can read an actual baseline or `roles.local` contract for that exact class. A `LIBRARY.md`
|
|
row without a readable contract fails semantic validation.
|
|
|
|
Custom classes receive no protected authority implicitly. Protected class/tool-policy mismatches
|
|
fail closed.
|
|
|
|
## Retirement guidance
|
|
|
|
New configuration should emit canonical values. Existing inputs may use the three aliases during the
|
|
compatibility period, but operators should migrate class and tool-policy fields together. Do not
|
|
create new legacy-named role overrides; move their intended content to the canonical filename and
|
|
validate the roster/profile before removing the old artifact.
|