---
summary: An entry's current position in its configured workflow.
---
# Status
A **status** is an entry's current position in the workflow
configured for its kind. [Issues](concept://issue) walk a different
workflow than decision records; both are declared in
`cartulary.toml`.
## What it carries
- A **name** — short, kebab-case (`open`, `in-progress`,
`accepted`, `superseded`).
- A **category** — one of `pending`, `ongoing`, `resolved`. Used
by `cartu issue metrics distribution` to bucket entries across
workflows.
- An optional **label** — human-readable display form (`In
Progress` for `in-progress`).
- An **active** flag — whether the status counts as "in flight"
for filters like `cartu issue list --active`.
- A **terminal** flag — whether the status closes the lifecycle.
## Configuration
The status set is per kind: one for issues, one per
decision-record kind. Declare them in `cartulary.toml`:
- `[issues.statuses.<name>]` — one block per status; each carries
`next` (allowed transitions), `active`, `terminal`, optional
`label`, optional `category`.
- `[issues]` carries `initial = "<name>"` — the status given to a
new entry.
- The same shape applies under `[<decision-kind>.statuses.<name>]`
(e.g. `[adr.statuses.…]` for the default `adr` kind).
### Built-in presets
Without a `preset` key, the built-in `default` applies. To
switch, set `preset = "<name>"` under `[issues]` or under a
decision-kind section.
| `default` (issue) | `open` | open, in-progress, **closed** |
| `scrum` (issue) | `to-do` | to-do, in-progress, code-review, testing, **done** |
| `kanban` (issue) | `backlog` | backlog, ready, in-progress, blocked, **done** |
| `default` (decision) | `proposed` | proposed, accepted, **rejected**, deprecated, **superseded** |
| `extended` (decision) | `draft` | draft, proposed, under-review, accepted, deprecated, **superseded** |
## Validation
`cartu check` enforces:
- Every entry's `status` field is a name configured for its kind.
- The first event in the [event log](concept://event-log) is
`created` with the configured initial status.
- Each `status_changed` event walks an allowed transition.
- Terminal statuses have no outgoing transitions.
## Commands
Transitions happen through `cartu issue status update <id> <new>`
and `cartu adr status update <id> <new>` (same shape for every
decision-record kind). The current value is readable with
`status show`. The list of valid
statuses for a kind is the keys of its `statuses` table in
`cartulary.toml` (or, when no table is declared, the chosen
preset's keys).