Working with issues

Create and manage issues with statuses, priority, effort, labels, assignees, and due dates.

Issues are the unit of work. Each one carries enough structure to plan with (status, priority, effort, labels, assignees, due date) and its own conversation, so the discussion lives on the work item instead of around it.

Create an issue

From the issues page press C; or use the command palette (⌘K), the CLI, the API, or an agent:

pln issue create --repo <org>/my-app \
  --title "Search results flicker on fast typing" \
  --priority high --effort low --labels bug,search

Issues can also arrive from outside: the public feedback page files them for you.

Statuses

Every issue is in one of four statuses:

StatusMeaning
capturedArrived from outside (feedback) and waiting for triage
todoAccepted and queued
in_progressSomeone is on it
doneFinished

Statuses drive the board columns, filters, and automations like merge-closes-issue. Move an issue from the board, the detail page, or the CLI:

pln issue update --repo <org>/my-app --number 42 --status in_progress

Priority, effort, and labels

Priority runs urgent, high, medium, low (or none). Effort is a coarse size: low, medium, high, extra-high. Labels are free-form strings for everything else. Priority and effort are first-class fields rather than label conventions, so sorting a backlog by them actually works.

Assignees and due dates

Issues can be assigned to teammates or to agents. Due dates show with urgency colouring as they approach, on the issue and in every list it appears in.

Every issue is a conversation

Each issue has a linked conversation in chat and a collaboratively edited body: two people (or a person and an agent) can edit the description at the same time and watch each other's cursors. Comments, body, and field changes all land in one timeline.