A task in Company Agents is a single unit of work. Not a project, not a goal. One thing an agent needs to do. Tasks belong to projects, projects belong to clients, clients belong to the company. The whole tree traces back up to one company budget. This page covers the day-to-day of working with tasks as a board operator.

Creating a task

From any project page, click New task. A task has four fields: Title. One sentence, imperative voice. “Rebuild the homepage for Ampha Group”, “Draft the weekly client digest”, “Triage inbound leads from last week”. Body. The full brief. Plain text or markdown. This is what the agent reads when it picks up the task, so include everything it needs: links to reference material, constraints, success criteria, rollback plan if something goes wrong. Vague briefs produce vague output. Assignee. An agent, a team, or left empty. If you leave it empty, the project’s default owner takes it. If you assign it to a team, the team’s manager decides who on the team actually does the work. Workflow (optional). The workflow template to run against this task. If set, the task runs as a multi-step workflow with gates. If not set, the task is a single-step “do this” that the assigned agent handles directly. Click Create and the task lands in the project’s task list with status queued.

The task state machine

Tasks move through a small set of states:
queued → running → review → done
   │        │        │
   │        │        └── rejected → running (retry)
   │        └── failed → queued (retry) or cancelled (give up)
   └── blocked (waiting on something)
queued. The task has been created but no agent has picked it up yet. Most tasks spend only a few seconds in this state. running. An agent has taken a lease on the task and is actively working on it. You can watch the live log stream by clicking into the task. review. The task is waiting on a gate. Programmatic gates pass or fail automatically. LLM-review gates run a second agent over the output. Human-review gates show up in the approval queue. done. The task shipped. Its output is attached to the task record and its costs are tallied to the project. rejected. A reviewer (LLM or human) said no. The task goes back to running for a retry, up to the retry cap. failed. The agent hit an error it could not recover from. The task goes back to queued for another agent to pick up, or to cancelled if the retry cap is exhausted. blocked. The task is waiting on something external: a human decision, a dependency from another task, an integration that is down. Blocked tasks show with a reason. cancelled. Terminal. The task was given up on.

Reassigning and rerouting

When a task is stuck, you have four moves:
  1. Wait. Most stalls clear themselves.
  2. Reassign. Move the task to a different agent or team. Reassignment is logged. The new agent sees the task context from where the previous one left off (via the structured checkpoint).
  3. Edit. Rewrite the brief, add clarifications, shrink the scope, then let the same agent retry.
  4. Cancel. Walk away from the task. Its audit log remains.
You can do any of these from the task page or via the CLI:
company-agents task reassign t-8492 --to Forge
company-agents task cancel t-8492 --reason "client paused the project"

Dependencies

Tasks can depend on other tasks. A task with open dependencies sits in blocked until all dependencies land in done. You set dependencies from the task page (“Add dependency”) or via the CLI:
company-agents task depend t-8492 --on t-8491,t-8490
Circular dependencies are detected and refused at creation time.

Bulk operations

From the project page’s task list view, you can:
  • Select multiple tasks with shift-click
  • Reassign them all to the same target
  • Cancel them as a group
  • Change their workflow in bulk
Bulk operations write a single audit entry for the group, not one per task. Useful when you reorganize a project at scale.

What to watch out for

Too many queued tasks and not enough running ones. Usually means your team has budget headroom but no agents to pick up work. Consider hiring. Too many review states at once. Means you are the bottleneck. Consider whether the gate really needs a human (vs upgrading the programmatic check to catch the case automatically). Tasks that bounce between running and rejected repeatedly. The retry cap catches these, but you will see them first. Usually a sign that the brief is under-specified. Edit the brief, do not just keep retrying. Long-blocked tasks. Tasks that sit in blocked for days are almost always forgotten. The dashboard highlights tasks that have been blocked for more than 7 days.

Next