Gated Roles vs a Single-Agent Fleet

Devin's homepage sells fleet-style delegation, review, automations, triage and CI fixes. Each one is a capability of a single agent product. RoboCo ships the same jobs as separate roles. Each role has its own lifecycle gate, and a task cannot skip a gate.

Source: devin.ai, fetched 2026-11-03.

What devin.ai states

Quotes are verbatim from the page.

  1. Fleet: "Delegate a big task, then Devin splits it across parallel cloud agents, manages them, and reports back".
  2. Done condition: Devin "won't stop until the PR is ready to merge".
  3. Review: "Devin Review finds bugs and vulnerabilities before they reach production."
  4. Own-browser testing: "Devin spins up its own Windows, Mac, and Linux virtual machines as needed to build, test in its browser, and record itself clicking through what it built".
  5. Scheduled chores: "Create scheduled workflows and trigger-based automations for repetitive work."
  6. Triage and CI: the page lists "Triage bugs as they land", "Fix CI when it fails" and "Triage issues when they get posted".
Not found on the page

The phrase "team of Devins" and the terms "visual QA", "auto-generated documentation" and "release notes" did not appear in the page text fetched on 2026-11-03. This page does not quote them as devin.ai claims.

The structural difference

Devin's page describes one agent product that does the work and reviews it. The fleet is parallel copies of that agent, managed by that agent.

RoboCo splits the work across roles that cannot act as each other. The gateway gives each role its own verb list.

  • A developer has i_am_done.
  • QA has pass_review and fail_review.
  • A documenter has i_documented.
  • A PR reviewer has pr_pass and pr_fail.
  • A PM has complete.

Receipt: roboco/foundation/policy/lifecycle.py (intents_for_role) and docs/rag/lifecycle/intent-verbs.md.

Each gate is a lifecycle status with role-restricted transitions.

  1. awaiting_qa: only QA passes or fails. Receipt: status-transitions.md.
  2. awaiting_documentation: a documenter or developer completes it, and docs_complete is required to move on. Receipt: lifecycle.py.
  3. awaiting_pr_review: only the PR reviewer passes or fails the assembled PR. Receipt: .claude/rules/task-lifecycle.md, "In-path PR-review gate".
  4. awaiting_pm_review: only a PM role completes, which means merging. Root work then goes to a CEO-only approval. Receipt: status-transitions.md.

The agent that wrote the code cannot pass its own PR. The pr_pass and pr_fail actions carry self_review_block=True in lifecycle.py.

The five use cases

PR review

Dev work passes QA first. Then the cell PM's assembled PR passes a separate PR reviewer before the PM merges.

Receipts: docs/rag/roles/qa.md, docs/rag/roles/pr-reviewer.md.

Status: shipped.

Browser testing and visual checks

fe-qa and ux-qa get structured Playwright browser tools: navigate, snapshot, evaluate, screenshot.

Receipt: docs/backend/qa/browser-verification.md.

Status: shipped. There is no GUI desktop session and no screen recording.

Documentation

The documenter role owns the awaiting_documentation gate. After a release, DocsSyncEngine opens one docs-update task when the docs site has drifted. It never auto-merges.

Receipts: docs/rag/roles/documenter.md, .claude/rules/autonomy-engines.md, "Docs-divergence sync".

Status: the gate is shipped. The docs sync is off by default (ROBOCO_DOCS_SYNC_ENABLED).

Scheduled chores and release notes

Board Programs run on cron cadences. Sentinel runs weekly. The dependency-update bot runs weekly. Every output is held for the CEO.

The gated release manager drafts the CHANGELOG entry and holds the release for CEO approval. It never publishes without the CEO.

Receipts: .claude/rules/board-programs-and-x.md, "Board Program registry"; .claude/rules/autonomy-engines.md, "Dependency-update bot" and "Gated release manager".

Status: per-program, off by default (ROBOCO_RELEASE_MANAGER_ENABLED for the release manager).

Issue triage

PM roles carry a triage verb. Board roles carry triage and escalate_to_ceo.

Receipt: lifecycle.py, intents_for_role.

Status: shipped. No external issue-tracker intake is documented.

CI-failure fixes

The CI-watch loop opens one fix task when the default branch goes red. The task rides the normal delivery flow and the PR-review gate.

Receipt: .claude/rules/autonomy-engines.md, "Multi-repo CI-watch".

Status: off by default (ROBOCO_CI_WATCH_ENABLED).

What RoboCo does not claim

  1. No GUI desktop or virtual-machine computer-use.
  2. No Slack, Teams or PagerDuty trigger surface is documented here. devin.ai shows those integrations. This page cites none of them.
  3. No speed, cost or quality figures. There is no comparable measurement, so there is no comparison.
  4. The autonomy engines above stay dormant until an operator arms them. They never auto-merge.

Position

One agent that writes, reviews and ships is one set of eyes.

RoboCo uses separate roles. Each role has its own verbs and its own gate. The agent that wrote the change cannot pass it.

Next

llms.txt