Skip to main content

Overview

Tasks represent discrete units of work that are assigned to agents. Each task has an objective, acceptance criteria, dependencies, and tracks its completion status.

Task Status

StatusDescription
PENDINGTask created, waiting to be assigned
IN_PROGRESSTask is being executed by an agent
REVIEW_REQUIREDTask completed, awaiting review
COMPLETEDTask successfully completed
NEEDS_FIXTask requires corrections
BLOCKEDTask blocked by dependencies or issues
CANCELLEDTask was cancelled

Verification Verdict

VerdictDescription
APPROVEDTask verification passed
NOT_APPROVEDTask verification failed
BLOCKEDTask verification blocked

List Tasks

curl "http://localhost:3000/api/tasks?workspaceId=default"

Endpoint

GET /api/tasks
GET
List tasks with optional filters

Query Parameters

workspaceId
string
Filter by workspace ID (defaults to "default")
status
string
Filter by task status
assignedTo
string
Filter by assigned agent ID

Response

tasks
array
required
Array of task objects

Task Object

id
string
required
Unique task identifier
title
string
required
Task title
objective
string
required
Detailed description of the task objective
scope
string
Scope definition for the task
acceptanceCriteria
array
Array of acceptance criteria strings
verificationCommands
array
Array of commands to verify task completion
assignedTo
string
ID of the agent assigned to this task
status
string
required
Current task status
dependencies
array
required
Array of task IDs that must be completed first
parallelGroup
string
Group identifier for tasks that can run in parallel
workspaceId
string
required
Workspace this task belongs to
completionSummary
string
Summary of task completion
verificationVerdict
string
Verification result: APPROVED, NOT_APPROVED, or BLOCKED
verificationReport
string
Detailed verification report
createdAt
string
required
ISO 8601 timestamp of creation
updatedAt
string
required
ISO 8601 timestamp of last update

Response Example

{
  "tasks": [
    {
      "id": "task-xyz789",
      "title": "Implement user authentication",
      "objective": "Create a secure authentication system using JWT tokens",
      "scope": "Backend API endpoints and middleware",
      "acceptanceCriteria": [
        "Users can register with email and password",
        "Users can login and receive JWT token",
        "Protected routes verify JWT tokens"
      ],
      "verificationCommands": [
        "npm test auth.test.js"
      ],
      "assignedTo": "agent-abc123",
      "status": "IN_PROGRESS",
      "dependencies": [],
      "parallelGroup": null,
      "workspaceId": "default",
      "completionSummary": null,
      "verificationVerdict": null,
      "verificationReport": null,
      "createdAt": "2026-03-03T10:00:00.000Z",
      "updatedAt": "2026-03-03T10:30:00.000Z"
    }
  ]
}

Create Task

curl -X POST http://localhost:3000/api/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Implement user authentication",
    "objective": "Create a secure authentication system",
    "workspaceId": "default",
    "acceptanceCriteria": ["Users can login", "JWT tokens issued"],
    "dependencies": []
  }'

Endpoint

POST /api/tasks
POST
Create a new task

Request Body

title
string
required
Task title
objective
string
required
Detailed description of what needs to be accomplished
workspaceId
string
Workspace ID (defaults to "default")
scope
string
Scope definition for the task
acceptanceCriteria
array
Array of acceptance criteria strings
verificationCommands
array
Array of shell commands to verify task completion
dependencies
array
Array of task IDs that must complete before this task
parallelGroup
string
Group identifier for parallel execution

Response

task
object
required
The created task object

Response Example

{
  "task": {
    "id": "task-xyz789",
    "title": "Implement user authentication",
    "objective": "Create a secure authentication system",
    "scope": null,
    "acceptanceCriteria": ["Users can login", "JWT tokens issued"],
    "verificationCommands": [],
    "assignedTo": null,
    "status": "PENDING",
    "dependencies": [],
    "parallelGroup": null,
    "workspaceId": "default",
    "completionSummary": null,
    "verificationVerdict": null,
    "verificationReport": null,
    "createdAt": "2026-03-03T10:00:00.000Z",
    "updatedAt": "2026-03-03T10:00:00.000Z"
  }
}

Get Task by ID

curl http://localhost:3000/api/tasks/task-xyz789

Endpoint

GET /api/tasks/{id}
GET
Get a single task by ID

Path Parameters

id
string
required
The task ID

Response

task
object
required
The task object

Status Codes

Status CodeDescription
200Success
404Task not found

Delete Task

curl -X DELETE http://localhost:3000/api/tasks/task-xyz789

Endpoint

DELETE /api/tasks/{id}
DELETE
Delete a task

Path Parameters

id
string
required
The task ID to delete

Response

deleted
boolean
required
Always true when successful

Response Example

{
  "deleted": true
}

Update Task Status

curl -X POST http://localhost:3000/api/tasks/task-xyz789/status \
  -H "Content-Type: application/json" \
  -d '{"status": "IN_PROGRESS"}'

Endpoint

POST /api/tasks/{id}/status
POST
Update a task’s status

Path Parameters

id
string
required
The task ID

Request Body

status
string
required
New status: PENDING, IN_PROGRESS, REVIEW_REQUIRED, COMPLETED, NEEDS_FIX, BLOCKED, or CANCELLED

Response

updated
boolean
required
Always true when successful

Response Example

{
  "updated": true
}

Get Ready Tasks

curl "http://localhost:3000/api/tasks/ready?workspaceId=default"

Endpoint

GET /api/tasks/ready
GET
Find tasks with all dependencies satisfied and ready for execution

Query Parameters

workspaceId
string
Filter by workspace ID (defaults to "default")

Response

tasks
array
required
Array of tasks that are ready to be assigned and executed

Response Example

{
  "tasks": [
    {
      "id": "task-ready-1",
      "title": "Setup database migrations",
      "status": "PENDING",
      "dependencies": [],
      "workspaceId": "default",
      "createdAt": "2026-03-03T10:00:00.000Z",
      "updatedAt": "2026-03-03T10:00:00.000Z"
    }
  ]
}

Delete All Tasks

curl -X DELETE "http://localhost:3000/api/tasks?workspaceId=default"

Endpoint

DELETE /api/tasks
DELETE
Delete all tasks in a workspace

Query Parameters

workspaceId
string
Workspace ID to delete tasks from

Response

deleted
integer
required
Number of tasks deleted

Response Example

{
  "deleted": 5
}

Error Responses

400 Bad Request

{
  "error": "title is required"
}

404 Not Found

{
  "error": "Task not found"
}

Build docs developers (and LLMs) love