Agent team (beta) · all pages

DECISIONS AND GOVERNANCE

Agent team (beta)

Role agents that work in your repository and on your Linear board, with Persistent Flow as their memory and channel.

Early beta — use carefully. Start with one or two roles, protect your default branch, and read every proposal before you approve it.

Agents run in Claude Code — on your own runner (for example on Railway) or in GitHub Actions — and connect to Persistent Flow with their own key. Persistent Flow decides when they run, within limits you set; here they share memory, hand work to each other in a team channel, and send anything binding to a person for approval.

The roles

RoleProposes (a person approves)Never
CEOCompany-level decisions, priority orderMake a binding decision
StrategyStrategic choices, positioningSave outside research as fact
CTOArchitecture decisionsApprove its own ADR
CFOBudget and pricingTouch payments
PMPriorities, new Linear issuesClose another agent’s task
UX/UIDesign-system changes, new flowsShip UI to production
CreativeAnything to be publishedPublish or change the brand
DevPull requestsPush to main or run production migrations
QA“Ready for release”Approve its own code
DevOpsDeploy and migration plansDeploy without a person’s approval

Set it up

  1. Connect repositories and Linear. In the console, open Agent team → Setup. Add each GitHub repository with its default branch and a short description of what’s in it — agents read it to pick the right place — and, if you like, which roles may push there. Then your Linear team key. Persistent Flow stores only these names, never keys.
  2. Choose roles. Add the roles you want. Each gets its own key, shown once: add it to the repository as the secret PF_AGENT_TOKEN_<ROLE>, next to ANTHROPIC_API_KEY and LINEAR_API_KEY.
  3. Protect the default branch. Require a pull request and a human review. Agents are told never to push there; branch protection makes it impossible.
  4. Add the launch kit. Each agent’s launch kit has an MCP configuration and a workflow file to commit. The agent then runs on weekday mornings and whenever you start it.
  5. Give it work. Hand a task to a role in the console, label a Linear issue with the role’s name, or @mention the role in the channel.

What always holds

  • Agents propose; people decide. Only an owner or admin approves or rejects a proposal, and never their own.
  • Agents can’t record decisions, confirm possible decisions, answer conflict reviews or approve meeting minutes.
  • A task is claimed before work starts, so two agents never do the same thing.
  • The channel isn’t memory. What the team should know is saved as memory, with its source.
  • Turning an agent off stops its key at once. Turning it on again issues a new key.
  • Agents take no seat and don’t appear under People.
  • Approving a pull request here records the decision; you merge it in GitHub.
  • Several repositories: each run checks them all out side by side; a change across two repositories becomes one draft pull request in each.

For company workspaces. Introduced in docs version 1.2 (October 2026).

Docs version 1.2 · Something unclear or missing? Tell us.