Developers
Work item (case model)
Work is the primary unit in Zero. Each Work item — a bug, feature, epic, refactor, or greenfield project — is stored internally as a case and tracks structured engineering intent from definition to verified resolution.
Object shape
{
"id": "uuid-v4",
"title": "auth timeout on /api/login",
"state": "VERIFYING",
"outcome": null,
"session_count": 4,
"summary": "JWT expiry check uses < instead of <=",
"tags": ["bug", "auth"],
"project_id": "uuid-v4",
"archived": false,
"blocked_reason": null,
"wont_fix_reason": null,
"assignee_id": null,
"schema_version": 2,
"created_at": "2026-04-21T09:00:00Z",
"updated_at": "2026-04-23T14:32:00Z"
}Fields
| Field | Description |
|---|---|
id | UUID v4. Stable identifier for the Work item. |
title | Short descriptive name. Set at creation. |
state | Current execution state. See Work item states. |
outcome | Set when resolved. See Outcomes. |
session_count | Number of sessions run on this Work item. |
summary | Short plain-text summary. Written during planning. |
tags | String array of operator-assigned tags. |
project_id | Parent project UUID, if assigned. |
archived | Whether the Work item is archived. |
blocked_reason | Set when state is BLOCKED. Null otherwise. |
wont_fix_reason | Set when operator marks Work as won't fix. |
github | Present if Work item was imported from a GitHub issue. Contains owner, repo, issue_number, issue_url, linked_pr_numbers. |
schema_version | Internal schema version for migration compatibility. |
State transitions via API
PUT /cases/:id/state
{ "state": "INVESTIGATING" }Returns 422 if the transition is not allowed.
Related: Session model, API reference.
On this page