Skip to content

Work Items & Board API

Work items represent individual tasks on the Kanban board. They track the lifecycle from backlog through implementation to completion.

List Work Items

http
GET /api/v1/projects/{project_id}/workitems
Authorization: Bearer <token>

Response 200 OK

json
[
  {
    "id": "uuid",
    "project_id": "uuid",
    "requirement_id": "uuid",
    "title": "Implement user registration API",
    "description": "Create REST endpoints for user registration",
    "status": "in_progress",
    "priority": "high",
    "assignee_type": "agent",
    "assignee_id": "claude-code",
    "created_at": "2026-01-01T00:00:00Z"
  }
]

Create Work Item

Requires developer role or higher.

http
POST /api/v1/projects/{project_id}/workitems
Authorization: Bearer <token>
Content-Type: application/json

{
  "title": "Fix login redirect bug",
  "description": "Users are not redirected after login",
  "priority": "high"
}

Get Work Item

http
GET /api/v1/workitems/{work_item_id}
Authorization: Bearer <token>

Update Work Item

Only allowed when status is backlog, todo, or cancelled.

http
PUT /api/v1/workitems/{work_item_id}
Authorization: Bearer <token>
Content-Type: application/json

{
  "title": "Updated title",
  "description": "Updated description",
  "priority": "medium"
}

Change Status

Manual status transitions follow allowed paths.

http
PATCH /api/v1/workitems/{work_item_id}/status
Authorization: Bearer <token>
Content-Type: application/json

{ "status": "todo" }

Allowed Transitions: backlog → todo, todo → backlog, todo → cancelled, in_progress → cancelled, done → backlog

Assign Work Item

http
POST /api/v1/workitems/{work_item_id}/assign
Authorization: Bearer <token>
Content-Type: application/json

{
  "assignee_type": "agent",
  "assignee_id": "claude-code"
}

Execute Work Item

Triggers the full AI execution pipeline: creates a requirement, generates an execution plan, starts the execution graph, and assigns an agent.

http
POST /api/v1/workitems/{work_item_id}/execute
Authorization: Bearer <token>
Content-Type: application/json

{
  "agent_override": "gemini-cli"
}

Work Item Detail (Enriched)

Returns the work item along with its execution nodes, gate reviews, and pull requests.

http
GET /api/v1/workitems/{work_item_id}/detail
Authorization: Bearer <token>

Response 200 OK

json
{
  "work_item": { "id": "uuid", "title": "...", "status": "in_review" },
  "execution_nodes": [
    { "id": "uuid", "node_type": "coding", "status": "completed", "agent_type": "claude-code" }
  ],
  "gate_reviews": [
    { "id": "uuid", "result": "pending", "created_at": "..." }
  ],
  "pull_requests": [
    { "url": "https://github.com/org/repo/pull/42", "status": "open" }
  ]
}

Comments

List Comments

http
GET /api/v1/workitems/{work_item_id}/comments
Authorization: Bearer <token>

Add Comment

http
POST /api/v1/workitems/{work_item_id}/comments
Authorization: Bearer <token>
Content-Type: application/json

{
  "content": "Looking good, ready for review",
  "comment_type": "human"
}

Board View

Returns all work items organized by Kanban columns.

http
GET /api/v1/projects/{project_id}/board
Authorization: Bearer <token>

Response 200 OK

json
{
  "backlog": [...],
  "todo": [...],
  "in_progress": [...],
  "in_review": [...],
  "done": [...]
}

Archived Items

http
GET /api/v1/projects/{project_id}/workitems/archived
Authorization: Bearer <token>

Forgexa — AI Software Factory