Coroid does not use a single general-purpose agent. Each stage of the process from description to pull request is handled by an agent with a narrow remit and a deliberately restricted set of tools.
These restrictions are intentional. An agent that cannot write code cannot accidentally write code.
The roles
| Role | Stage | Can modify your code |
|---|---|---|
| Architect | Specification and plan | No |
| Developer | Build | Yes |
| QA | Verify | No |
| Reviewer | Review | No |
| Web tester | Verify, browser flows | No |
| Explorer | Research, any stage | No |
| Dependency analyser | Analysis | No |
The first four roles form the pipeline you see on every task, in this order:
Architect → Developer → QA → Reviewer
Only one role – the developer – can alter files in your repository. All other agents merely read, run, report, or create follow-up work.
Architect
It converts your description into a specification, and the specification into a plan. It reads the codebase to align the plan with what already exists, but it does not write any code.
Its output is what you approve before the build begins.
Developer
It carries out the work: reads the relevant code, makes the required changes, writes or updates tests, and runs them locally in the workspace until they pass.
When the Reviewer sends back its findings, Developer is the role that addresses them.
QA
It runs verification independently of the agent that wrote the code – using your test suite, the quality gates set for the project, and the acceptance criteria from the specification.
QA produces a verdict. It does not fix any issues it discovers; failures are sent back to the Developer for rework.
Reviewer
It reads the completed diff and generates findings, applying any review rules your organisation has configured. Findings are either returned to the developer as rework or attached to the pull request for your review.
Web tester
It uses a real browser to test a live preview of your application and check end-to-end user flows. This is used when behaviour cannot be verified solely from the code.
Explorer
This is a read-only research role. Other agents use it to obtain answers about a codebase without needing to load all data into their own context – e.g., "where is authentication handled?" or "which functions call this one?"
Dependency analyser
It examines dependencies and how changes affect the entire codebase, including across projects where cross-project dependencies are configured.
Why this separation matters
Splitting the work in this way results in three key benefits:
- Verification is independent. The agent that checks the work is not the same as the agent that wrote it, so it has no vested interest in the outcome.
- Blast radius is bounded. Only the developer role has access to tools for writing code, so a fault in review or analysis cannot corrupt your repository.
- Each role runs a model suited to its tasks. Planning requires broad world knowledge; writing compilable code demands different skills. An AI profile uses a separate model for each role for precisely this reason.
Next
Return to How a task transforms into a pull request detailing the stages these roles correspond to, or What is Coroid? for a brief overview.