/role
View or change your role. Role is a personal setting that filters which platform capabilities Claude offers you.
Why this exists
bewith-docs serves two audiences — developers (default) and product (currently Gali, possibly more). Without a role, the capability-awareness hook would offer everyone everything: dev sessions would get product agents during coding, product sessions would get dev tooling during spec writing. Role + the audience field on every artifact makes the offers relevant.
Usage
| Form | What it does |
|---|---|
/role | Show current role, its source (permanent / session / default), and how it filters. |
/role dev | Set role to dev (permanent). |
/role product | Set role to product (permanent). |
/role dev --session | Set role to dev for the next 4 hours only. |
/role product --session | Set role to product for the next 4 hours only. |
Default for any user without a saved role is dev. Most developers never need to set it explicitly.
What happens after you change role
Role now lives in the unified per-developer config (~/.bewith/config.json); /role is the shortcut, /settings the full surface.
- Permanent change is written to
config.json.role(with a write-through copy touser_role.mdfor the transition). It applies to every session in this project until you change it again. - Session-only change is written to
~/.claude/session-state.jsonwith a 4-hour expiry. The next session reverts to your permanent role.
The capability-awareness hook re-reads role at the start of every session — there is no daemon to restart.
Arguments
$ARGUMENTS — one of dev, product, dev --session, product --session, or empty.
Cross-references
- Underlying skill:
role. - The audience field that role filters against:
docs/methodology/artifact-types.md#audience. - The hook that consumes this setting:
.claude/hooks/capability-awareness.sh. - Proposal: user-role-and-audience-filtering.