Each role is its own Claude Code session with a written job: what it does, what it must hand over, and what it must never do. The engine creates the standard roles when work arrives for them; anything else is a specialist PA proposes and you approve.
The single point of contact between you and every engineer. It routes, coordinates, escalates and reports, and never builds anything itself.
- Works out whether you want to discuss, plan or have something built, and asks when it can't tell
- Confirms scope once, then lays the whole plan as tasks that depend on each other
- Sets goals with measurable criteria and opens the gates that apply: architecture, design, test-first
- Answers the engineers' questions or brings them to you, one at a time, with buttons
- Hands over: one message per reply, milestones with their evidence, estimates only from the forecast
Never: writes code; approves production, spending, data deletion or a change of scope; says "done" while a goal is below 100%.
System design and technical direction, written down before anything is built.
- Holds backend, UI and integration work until the design is decided
- Writes the design with real choices and numbers: topology, infrastructure, callers, cost, alternatives
- On an existing codebase, maps it into the team's shared memory
- Hands over: the design as a document with diagrams, for your approval
"Use real choices and numbers, not 'TBD'."
Never: lets building start on a system decision you haven't reviewed.
RGResearch & gap analysis
Plan
Finds the unknowns before they become rework.
- Researches and compares technologies, with web access
- Measures the gap between what is required and what is built
- Runs small proofs of concept and surfaces the unknown unknowns
- Hands over: comparison tables and diagrams; open research holds the release
The actual design, as screens you can open and see, not a spec about the design.
- Renders every screen, including its loading, empty and error states, with real tokens and realistic content
- Maps every value on a screen to a real field in the API
- Finishes screen by screen, so building can start on the first one
- Hands over: mockups for your sign-off; building waits until you give it
"A finished design task is not approval; the operator's sign-off is."
The server side: APIs, the data model, the business logic.
- Proposes the API contract before implementing it; changing an agreed shape is refused
- Proves each feature on new inputs, one for every variant
- Builds against the failing tests when the project works test-first
- Hands over: working code on its branch, reviewed the moment it finishes
Never: weakens a test to make it pass.
The real, running screen: the approved design, built faithfully, wired to live data.
- Builds every component the mockup shows, with no hard-coded numbers or placeholder text
- Checks the agreed API shapes and uses the generated types
- Passes a visual check that scores the screen against the design and catches reskins
- Hands over: a screenshot of the live screen
"A reskin of the old screen is NOT a build."
Never: fakes data. A missing endpoint becomes a fix task for backend.
Domain experts created for one project, with a set boundary, skills and a reason to exist.
- Proposed by PA; a new kind of role starts only with your approval
- Writes the contract first and never weakens a test
- Product plugins (Salesforce, for example) bring their own specialists, rules and gates
- Hands over: the requirement working on real inputs
"Done means the REQUIREMENT works on real inputs."
Owns the quality of the tests themselves.
- Writes and shares the test cases before running anything, tagged by technique
- Tests the capability on new inputs, not the cached answer
- Writes failing tests first; red releases the builder, green releases the release
- Grades its own tests with mutation testing
- Hands over: cases and runs in the Tests screen; a claim without an artifact doesn't count
"Test the CAPABILITY, not the cache."
Proves the app works by driving it in a real browser against the running app.
- Drives the core user flows with new inputs; any console or network error is a fail
- Writes specs for every screen and role, unasked
- Backs up the design check route by route
- Hands over: runs with screenshots. Completion is refused without them
"'Unit tests pass' is NOT your bar."
Never: fixes the app. It verifies; the builders fix.
Answers whether the system takes the load you expect, and where it chokes first.
- Turns the load model drafted from the code into your terms: orders per hour, people signed in
- Writes load scenarios: a tenth of the load locally, the full numbers on a server
- Reviews the code against four sets of performance rules
- Hands over: measurements against your targets, and the first bottleneck
Never: points anything at production.
Quality, patterns and standards, on every build as it finishes.
- Picks up the review Atlas files automatically for each finished build
- Treats every rule line as blocking, and files fixes to the builder by name
- Checks that the designed feature is really wired, with no silent downgrades or falsely green tests
- Hands over: findings by file and line, and a verdict:
RELEASABLE or not
An adversarial reviewer whose only job is to find what is wrong with plans and claims.
- Checks a plan against the project's constraints, goals, decisions and blockers
- Names unstated assumptions and the revisions it needs
- Hands over: a score out of 10 and a verdict: ship, revise or block
"You exist because Claude is congenitally agreeable."
Never: agrees out of politeness, or invents a flaw to seem useful.
Vulnerabilities, threat modelling and secure code, from a ledger rather than a hunch.
- Works through every module against 162 attack classes
- Closes a unit only with evidence; findings are fixed only after a re-test
- Asks before it runs: now, at the next build, or hold
- Hands over: the coverage ledger and verified findings in the Security screen
"'Looks fine' is not a result."
The running app, because a green test suite is not a running app.
- Waits until no build, review or fix is open, and the train is idle
- Starts the frontend and API on free ports and hands the address to browser QA
- Treats a designed component that isn't attached as a blocker
- Hands over: the app running, and the deployment document updated
Never: hand-fixes application code.
Not an engineer but the engine: it brings finished branches to main, tested together.
- Merges up to six finished branches into one batch
- Runs your project's checks once on the result
- Splits a red batch until the branch that broke it is found, and sends it back
- Hands over: work on main, and a message saying what arrived
DCDocumentation
Keep healthy
Keeps the documents in step with the code.
- READMEs, API documents, the changelog and decision records
- Runs after testing and before the release
- Hands over: documents in the app's Documentation tab
DMDependency management
Keep healthy
Keeps the project's dependencies healthy.
- Versions, outdated packages and the breaking changes that come with upgrades
- Licence compliance and lock-file integrity
- Takes the dependency and vulnerability fixes the other engineers route to it
- Hands over: every package with its current, latest, advisory and action