Design good tickets
Good ticket design makes work easier to assign, review, filter, and finish. Use this guide before creating important delivery, customer, bug, or operations work.
Start with the outcome
- Write the title as the desired result.
- Put the most important object first.
- Avoid titles that only describe activity.
Good titles:
Fix invite expiry validation for organisation adminsAdd launch checklist to Enterprise onboarding docsInvestigate slow snapshot generation on large workspaces
Weak titles:
InvitesDocs updateLook at snapshots
Write the description
- Start with one short paragraph explaining why the work matters.
- Add acceptance criteria as bullets.
- Add constraints, links, or reference IDs.
- Name known blockers or dependencies.
- Add test, review, or rollout notes when they are known.
Example:
Customers cannot tell whether invite links are expired before sending them to teammates.
Acceptance criteria:
- Expired invites show an explicit expired state.
- Admins can create a replacement invite from the same row.
- The invite table keeps the original invited email visible.
References:
- DEC-18 invite expiry policy
- RISK-7 onboarding support burden
Choose the right type
- Use
taskfor concrete work. - Use
bugwhen existing behavior is broken. - Use
storywhen the work is framed around a user outcome. - Use
subtaskwhen the item belongs under another ticket. - Use an epic for a larger outcome that contains multiple tickets.
Do not use issue type as a priority signal. Priority belongs in the priority field.
Set priority deliberately
- Use a lower priority number for more urgent work.
- Compare against other active tickets before setting
P1orP2. - Add a reason in the description or a comment when priority is high.
- Revisit priority during standup or weekly review.
High priority without rationale becomes noise. Put the reason where the team can audit it later.
Add labels only when they help repeated review
- Use short lowercase labels such as
backend,security,customer, orlaunch. - Prefer a custom field when the values need controlled reporting.
- Avoid one-off labels that only one person understands.
- Review label filters periodically and remove stale patterns from active work.
Use labels for flexible tags. Use custom fields for structured values the team will maintain.
Fill custom fields for the board you use
- Check which saved board will review the ticket.
- Fill the custom fields shown on that board's cards.
- Fill required custom fields before moving the ticket through restricted transitions.
- Use controlled options exactly as defined by the project.
If reviewers keep opening tickets to find the same information, add that field to the board card layout.
Connect the ticket to larger context
- Add a parent or epic when the work is part of a larger outcome.
- Link blockers and related tickets.
- Mention docs, decisions, risks, memory, or snapshots by display ID when they explain the work.
- Add a comment for handoff context that does not belong in the main description.
Connections make tickets useful to AI-assisted review and later operating decisions.
Keep the ticket small enough to finish
Split the ticket when:
- More than one owner needs to move independently.
- The acceptance criteria describe separate releases.
- Part of the work is blocked and part is ready.
- Reviewers cannot tell what completion means.
- The ticket keeps carrying over without progress.
Use subtasks or sibling tickets under an epic instead of letting one ticket become a vague project.
Pre-flight checklist
Before you save a high-value ticket:
- The title names the result.
- The description explains why the work exists.
- Acceptance criteria are testable.
- Type, priority, owner, dates, labels, and custom fields are intentional.
- The parent, epic, links, and references are connected.
- A reviewer could decide whether the work is done without asking the author.
Related guides: Create and update tickets, Link and organize tickets, Add custom fields.