Role briefings and methods
What a role briefing carries, and the methods a role may apply.
Role skills
Each person profile owns one ordinary role skill. KDL keeps compact identity data and leaves long-form doctrine in the skill body. It may also own role methods set by the package's cross-role policy, and activate role boundaries sharing doctrine outside its budget.
Profile layout
A role fragment binds a stable skill id:
role "tpm" {
display-name "Portfolio Director"
purpose "Decide what the portfolio does next, and carry each decision to its gate."
skill "role-tpm"
personality "decisive" "outward"
}
The body at roles/tpm/SKILL.md needs ordinary frontmatter, matching
role-<slug> metadata, three paragraphs, and at most 400 words after its
title. V1.x packages may retain an inline briefing. The compatibility adapter
projects it as an in-memory role-<slug> skill. A role cannot declare both
forms, and the adapter never writes a second mutable source tree.
Progressive disclosure
An assigned native bundle materializes the selected role skill, its role
methods, and every personality skill in its ordered meld. Startup instructions
carry the fixed role bootstrap and a compact identity card. The card retains
purpose, harness seats, one role-owned name and pronoun pair, personality
emblem names, motifs, colors, cues, melded color, and skill ids. Compact
fields use //. The native roster installs role and personality skills for
discovery without loading their bodies globally. After role selection, the
agent reads that role skill and its complete meld before acting. Compiled
delivery has no native skill loader. It appends the selected role skill first,
then the active personality skills, role methods, and capability skills, so its
behavioral content stays equivalent without emitting unusable pointers.
Authority boundary
Role skills define identity and the feedback loop a role owns. Capability
providers define task methods. Ward and guarded runtime policy define
executable authority. Developer Advocate (devrel) owns every recommendation
about communication addressed outward, including wording, tone, framing,
timing, channel, reply strategy, and editorial fitness. Other roles retain
mechanical records and defer only for recommendations, and two hold a named
scope over the words inside an artifact they own. External action still
requires task, runtime, and user authorization. Agentic Platform Engineer
(platform) owns foundational software. Systems Administrator (sysadmin)
owns controlled running-system change, live verification, and rollback.
Evaluation Engineer (eval) stays read-only around running backends unless the
runtime grants an enforced disposable fixture mode. No role skill grants
commands, credentials, mounts, network access, deployment, model selection, or
permission.
Design Engineer (frontend) owns the surface a person navigates and builds it
as well as shapes it: responsive presentation, components, tokens,
static assets, semantic structure, focus treatment, metadata, empty states, and
the route, rendering, accessibility, and navigation tests that hold them.
Business rules, state machines, runtime data, APIs, persistence, permissions,
migrations, and shared tooling are foundational software and return to
platform. devrel may land content-only repository changes, including
human-facing literals embedded in code. That exception requires unchanged
control flow, state, schemas, structured contracts, and executable behavior.
Portfolio Director (tpm) owns code review as a gate decision, so a
defect returns to the owning seat with evidence rather than with a patch.
Role methods
A person package may bind progressive-disclosure method skills to one role. Use a role method when the procedure is determined by that package's roster policy and would become misleading if copied into a general knowledge provider.
Package layout
Declare method ids in the owning role fragment:
role "eval" {
skill "role-eval"
method "eval-fixture-suite"
}
Store each body under that role:
roles/eval/SKILL.md
roles/eval/skills/eval-role-comms/SKILL.md
roles/eval/skills/eval-role-live-ops/SKILL.md
Every method directory contains only SKILL.md. The frontmatter name matches
the declared id. Missing, extra, malformed, duplicate, or cross-role duplicate
methods fail package loading.
Selection and delivery
Agent Compose selects methods only with their owning role. The selected role's identity card names them without eagerly loading their bodies. Native delivery projects them as discoverable skills, while compiled delivery appends the same selected bodies to preserve behavior for harnesses without a skill loader. Bare roster convergence installs every method beside role and personality skills so an inferred interactive role can activate it. The roster instruction keeps methods inactive until both the current role and task match. Assigned AOS launches consume the verified bundle and own no copy of the method source.
Core Roster methods
The Core Roster declares none. The two evaluation methods it carried were scaffolding for the boundaries in #254 and retired with them. The primitive stays available to any package whose roster policy needs a single-owner procedure. A method is owned by exactly one role. When the same procedure binds several roles, use a role boundary instead.