CLI & MCP

Waymaker roles

Manage organizational roles and assignments. Roles define positions within your organization with reporting relationships, responsibilities, and accountabilities.

RolesHierarchy
Last updated: January 21, 2026

Overview

Manage organizational roles and assignments. Roles define positions within your organization with reporting relationships, responsibilities, and accountabilities.

Usage

waymaker roles <subcommand> [options]

Subcommands

SubcommandDescription
listList all roles
createCreate a new role
getGet role details
updateUpdate role properties
deleteDelete a role
hierarchyShow organization chart
reports-toSet reporting relationship
describeGet role description
assignmentsList users assigned to role
assignAssign user to role
unassignRemove user from role

Examples

List All Roles

waymaker roles list

Output:

name               type        status  reports_to  assigned
-----------------------------------------------------------
CEO                leadership  active  -           0
CTO                leadership  active  CEO         0
Software Engineer  executing   vacant  CTO         0

Create a Role

waymaker roles create \
  --name "Product Manager" \
  --purpose "Drive product strategy and roadmap" \
  --reports-to <cto-role-id> \
  --type supporting

Options:

  • --name (required): Role name
  • --purpose: Role purpose/description
  • --reports-to: Parent role ID in hierarchy
  • --type: executing, supporting, or leadership

View Organization Hierarchy

waymaker roles hierarchy

Output:

Organization Hierarchy

CEO (leadership)
├── CTO (leadership)
│   ├── Software Engineer (executing)
│   └── Product Manager (supporting)
└── CFO (leadership)
    └── Accountant (executing)

Set Reporting Relationship

waymaker roles reports-to <role-id> <parent-role-id>

Assign User to Role

waymaker roles assign <role-id> --user <user-id>

Unassign User from Role

waymaker roles unassign <role-id> --user <user-id>

Delete a Role

waymaker roles delete <role-id> --confirm

Note: You cannot delete a role that has users assigned or child roles reporting to it.

Options Reference

OptionTypeDescription
--namestringRole name
--purposestringRole purpose/description
--reports-touuidParent role ID
--typeenumexecuting, supporting, leadership
--statusenumactive, vacant, planned
--teamuuidTeam ID
--userstringUser ID for assign/unassign
--jsonflagOutput as JSON
--confirmflagRequired for delete

JSON Output

waymaker roles list --json
[
  {
    "id": "abc123",
    "name": "CEO",
    "type": "leadership",
    "status": "active",
    "reports_to_id": null,
    "reports_to_name": null,
    "assigned_count": 1
  }
]

Use Cases

Set Up Organization Structure

# Create leadership roles
waymaker roles create --name "CEO" --type leadership
CEO_ID=$(waymaker roles list --json | jq -r '.[] | select(.name=="CEO") | .id')

waymaker roles create --name "CTO" --type leadership --reports-to $CEO_ID
waymaker roles create --name "CFO" --type leadership --reports-to $CEO_ID

# Create team roles
CTO_ID=$(waymaker roles list --json | jq -r '.[] | select(.name=="CTO") | .id')
waymaker roles create --name "Senior Engineer" --type executing --reports-to $CTO_ID
waymaker roles create --name "Junior Engineer" --type executing --reports-to $CTO_ID

AI Agent: Analyze Org Structure

# Get hierarchy data
ROLES=$(waymaker roles list --json)

# Find vacant roles
echo $ROLES | jq '.[] | select(.status=="vacant")'

# Count roles by type
echo $ROLES | jq 'group_by(.type) | map({type: .[0].type, count: length})'

Role Types

TypeDescriptionExamples
leadershipStrategic decision-makersCEO, CTO, VP
supportingEnable others to executePM, HR, Finance
executingDeliver core workEngineers, Designers

MCP Tools (Claude Desktop)

When using the Waymaker MCP server with Claude Desktop or other AI assistants, these tools are available for managing organizational roles:

commander_role_list

List all roles in an organization.

Parameters:

ParameterTypeRequiredDescription
organization_idstringYesOrganization UUID or Clerk ID
departmentstringNoFilter by department
include_vacantbooleanNoOnly show vacant roles

Example prompts:

"List all roles in the organization"

"Show me vacant roles that need to be filled"

"What roles are in the Engineering department?"

commander_role_get

Get a role by ID with its accountabilities and assignments.

Parameters:

ParameterTypeRequiredDescription
role_idstringYesRole UUID
include_assignmentsbooleanNoInclude user assignments (default: true)

Example prompts:

"Get the Engineering Manager role details"

"Show me who is assigned to the CTO role"

commander_role_create

Create a new role definition.

Parameters:

ParameterTypeRequiredDescription
organization_idstringYesOrganization UUID or Clerk ID
titlestringYesRole title
purposestringNoRole purpose statement
departmentstringNoDepartment name
reports_to_idstringNoUUID of role this reports to
accountabilitiesarrayNoKey accountabilities [{title, description}]

Example prompts:

"Create a Senior Engineer role in the Engineering department"

"Create a Product Manager role that reports to the VP of Product"

"Create a Marketing Lead role with accountabilities for brand and campaigns"

commander_role_update

Update a role's details.

Parameters:

ParameterTypeRequiredDescription
role_idstringYesRole UUID
titlestringNoNew title
purposestringNoNew purpose statement
departmentstringNoNew department
reports_to_idstringNoNew reporting role

Example prompts:

"Update the Product Manager role to report to the CEO"

"Change the Engineering Lead title to Principal Engineer"

"Update the role purpose to include team mentoring"

commander_role_assign

Assign or unassign a user to/from a role.

Parameters:

ParameterTypeRequiredDescription
role_idstringYesRole UUID
user_idstringYesUser ID to assign/unassign
actionstringNo"assign" or "unassign" (default: assign)
start_datestringNoAssignment start date
allocation_percentagenumberNoTime allocation (0-100)

Example prompts:

"Assign Sarah to the Engineering Manager role"

"Remove John from the Project Lead role"

"Assign the new hire to the Junior Developer role starting next Monday"

Using Frameworks with Roles

Combine the Role Description Builder framework with role tools:

"Apply the Role Description Builder framework to create a comprehensive Engineering Manager role, then create it in Commander"

This lets Claude generate role purposes, accountabilities, and metrics, then create the role directly.