λx.xDocs← app
DocsConceptsRoles

Roles

Five roles. Defined by what they do. Each role is a job— what a session is responsible for — and the model tier it runs on is a property of that job, not the other way around. You don't pick a model and get a role; you have a job to do and the role names it.

The General is you

The General is the human — you. You set direction, decide what gets built and when, and read the dashboard to keep a picture of the whole project. The General isn't a spawned session and doesn't run on a model; it's the person the five roles below work for. Everything past this point is a Claude session.

The five roles

Colonel

Translates intent into routed work. Directs; doesn't implement. A Colonel is every interactive chat window — claude.ai, the desktop app, or CLI Claude in a terminal. It takes what you said, writes directives to the substrate, and points them at the right workers on the right branches. Its unique value is the gap between what you asked for and what the workers need to hear; it holds that gap without collapsing it. Runs on Opus.

Major

A Colonel pointed at a narrow mission. Same capability as a Colonel, assigned to one thing: either a recon-and-report aide that goes deep on a question and comes back with an answer, or a heavy task that needs Opus-grade judgment to execute rather than delegate. A Major is distinguished by its assignment, not by being a lesser Colonel. Runs on Opus.

Lieutenant

Decompose and direct.A Lieutenant takes a colonel-sized brief, breaks it into atomic worker directives, dispatches them, and directs the workers that pick them up. That's the whole job — decomposition and direction, not implementation. Always runs on Sonnet: the work needs judgment, and Sonnet gives it reliably at a fraction of Opus cost.

Sergeant

Executes directives and specs. A Sergeant claims a directive and does the work, writing back everything it decides — implementations, questions, blockers — so the Lieutenant and Colonel stay current without polling. Judgment-capable: it can handle work that requires reading the room and making a call. Runs on Sonnet.

Private

Executes directives and specs.Same job as a Sergeant — claim, execute, write back — for mechanical work where the path is clear and judgment isn't the bottleneck. The role is identical; the model tier is the difference. Runs on Haiku.

The mental model

Two of the five direct, three execute, and the line between them is the job, not the rank:

General
Human
directs
Colonel
Opus
directs
Lieutenant
Sonnet
decomposes
Sergeant
Sonnet
executes
Private
Haiku
executes
Major
Opus
mission

The General is you — every other role is a Claude session.

  • Colonel and Major turn your intent into work and route it. Opus, because translating ambiguous human direction into the right directives is the part that most needs judgment.
  • Lieutenant sits between direction and execution: it takes one brief and fans it out into the directives a wave of workers will claim.
  • Sergeant and Private do the work. Same job; a Sergeant gets Sonnet for judgment-heavy execution, a Private gets Haiku for mechanical execution.

The Workers panel on the dashboard — these are real sessions, each color-coded to their branch focus. Sergeants and Privates appear here as they claim and execute directives.

At a glance

RoleModelWhat it doesDirects or executes
ColonelOpusTranslates intent, routes work to the right workersDirects
MajorOpusA Colonel on a narrow mission — recon aide or heavy executionEither, by assignment
LieutenantSonnetDecomposes a brief into directives, dispatches, directsDirects
SergeantSonnetExecutes directives — judgment-capableExecutes
PrivateHaikuExecutes directives — mechanicalExecutes

Under the hood

You reason in the five roles above. The spawner thinks in two parameters: a role and a model. Sergeant and Private are the same spawn role — grunt, the plumbing word for a spawned worker process. A Sergeant is role=grunt with a Sonnet model override; a Private is role=gruntat the default Haiku tier. “Grunt” is an implementation detail of how a worker is spawned, not a role you think about — when you describe the work, you describe Sergeants and Privates.

How sessions get their role

When a worker is spawned, the spawn request specifies its role and model. The session's system prompt is generated with that role's conventions injected, and claim_spawnregisters the session and returns the role it was assigned. Interactive sessions — the chat window you're talking to — are Colonels by default; set a different focus with declare_focus when you want one to act as a Major.


Next: Spawning

Roles come alive through spawning. Read about the spawn cycle →