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:
| Status | Meaning |
|---|---|
captured | Arrived from outside (feedback) and waiting for triage |
todo | Accepted and queued |
in_progress | Someone is on it |
done | Finished |
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.