Files
claude-skills-reference/project-management/jira-expert/references/jql-examples.md
Reza Rezvani 83e655a056 fix(pm): extract 6 PM skills from zips into standard directories
PM skills were the only domain packaged as zip files instead of
extracted directories, causing plugin install failures and missing
codex index entries. Extracts all 6 skills, fixes broken symlink,
regenerates index (47 → 53 total), and updates doc counts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 11:13:34 +01:00

416 lines
7.6 KiB
Markdown

# JQL Query Examples
## Sprint Queries
**Current sprint issues:**
```jql
sprint IN openSprints() ORDER BY rank
```
**Issues in specific sprint:**
```jql
sprint = "Sprint 23" ORDER BY priority DESC
```
**All sprint work (current and backlog):**
```jql
project = ABC AND issuetype IN (Story, Bug, Task)
ORDER BY sprint DESC, rank
```
**Unscheduled stories:**
```jql
project = ABC AND issuetype = Story AND sprint IS EMPTY
AND status != Done ORDER BY priority DESC
```
**Spillover from last sprint:**
```jql
sprint IN closedSprints() AND sprint NOT IN (latestReleasedVersion())
AND status != Done ORDER BY created DESC
```
**Sprint completion rate:**
```jql
sprint = "Sprint 23" AND status = Done
```
## User & Team Queries
**My open issues:**
```jql
assignee = currentUser() AND status != Done
ORDER BY priority DESC, created ASC
```
**Unassigned in my project:**
```jql
project = ABC AND assignee IS EMPTY AND status != Done
ORDER BY priority DESC
```
**Issues I'm watching:**
```jql
watcher = currentUser() AND status != Done
```
**Team workload:**
```jql
assignee IN membersOf("engineering-team") AND status IN ("In Progress", "In Review")
ORDER BY assignee, priority DESC
```
**Issues I reported that are still open:**
```jql
reporter = currentUser() AND status != Done ORDER BY created DESC
```
**Issues commented on by me:**
```jql
comment ~ currentUser() AND status != Done
```
## Date Range Queries
**Created today:**
```jql
created >= startOfDay() ORDER BY created DESC
```
**Updated in last 7 days:**
```jql
updated >= -7d ORDER BY updated DESC
```
**Created this week:**
```jql
created >= startOfWeek() AND created <= endOfWeek()
```
**Created this month:**
```jql
created >= startOfMonth() AND created <= endOfMonth()
```
**Not updated in 30 days:**
```jql
status != Done AND updated <= -30d ORDER BY updated ASC
```
**Resolved yesterday:**
```jql
resolved >= startOfDay(-1d) AND resolved < startOfDay()
```
**Due this week:**
```jql
duedate >= startOfWeek() AND duedate <= endOfWeek() AND status != Done
```
**Overdue:**
```jql
duedate < now() AND status != Done ORDER BY duedate ASC
```
## Status & Workflow Queries
**In Progress issues:**
```jql
project = ABC AND status = "In Progress" ORDER BY assignee
```
**Blocked issues:**
```jql
project = ABC AND labels = blocked AND status != Done
```
**Issues in review:**
```jql
project = ABC AND status IN ("Code Review", "QA Review", "Pending Approval")
ORDER BY updated ASC
```
**Ready for development:**
```jql
project = ABC AND status = "Ready" AND sprint IS EMPTY
ORDER BY priority DESC
```
**Recently done:**
```jql
project = ABC AND status = Done AND resolved >= -7d
ORDER BY resolved DESC
```
**Status changed today:**
```jql
status CHANGED AFTER startOfDay() ORDER BY updated DESC
```
**Long-running in progress:**
```jql
status = "In Progress" AND status CHANGED BEFORE -14d
ORDER BY status CHANGED ASC
```
## Priority & Type Queries
**High priority bugs:**
```jql
issuetype = Bug AND priority IN (Highest, High) AND status != Done
ORDER BY priority DESC, created ASC
```
**Critical blockers:**
```jql
priority = Highest AND status != Done ORDER BY created ASC
```
**All epics:**
```jql
issuetype = Epic ORDER BY status, priority DESC
```
**Stories without acceptance criteria:**
```jql
issuetype = Story AND "Acceptance Criteria" IS EMPTY AND status = Backlog
```
**Technical debt:**
```jql
labels = tech-debt AND status != Done ORDER BY priority DESC
```
## Complex Multi-Condition Queries
**My team's sprint work:**
```jql
sprint IN openSprints()
AND assignee IN membersOf("engineering-team")
AND status != Done
ORDER BY assignee, priority DESC
```
**Bugs created this month, not in sprint:**
```jql
issuetype = Bug
AND created >= startOfMonth()
AND sprint IS EMPTY
AND status != Done
ORDER BY priority DESC, created DESC
```
**High-priority work needing attention:**
```jql
project = ABC
AND priority IN (Highest, High)
AND status IN ("In Progress", "In Review")
AND updated <= -3d
ORDER BY priority DESC, updated ASC
```
**Stale issues:**
```jql
project = ABC
AND status NOT IN (Done, Cancelled)
AND (assignee IS EMPTY OR updated <= -30d)
ORDER BY created ASC
```
**Epic progress:**
```jql
"Epic Link" = ABC-123 ORDER BY status, rank
```
## Component & Version Queries
**Issues in component:**
```jql
project = ABC AND component = "Frontend" AND status != Done
```
**Issues without component:**
```jql
project = ABC AND component IS EMPTY AND status != Done
```
**Target version:**
```jql
fixVersion = "v2.0" ORDER BY status, priority DESC
```
**Released versions:**
```jql
fixVersion IN releasedVersions() ORDER BY fixVersion DESC
```
## Label & Text Search Queries
**Issues with label:**
```jql
labels = urgent AND status != Done
```
**Multiple labels (AND):**
```jql
labels IN (frontend, bug) AND status != Done
```
**Search in summary:**
```jql
summary ~ "authentication" ORDER BY created DESC
```
**Search in summary and description:**
```jql
text ~ "API integration" ORDER BY created DESC
```
**Issues with empty description:**
```jql
description IS EMPTY AND issuetype = Story
```
## Performance-Optimized Queries
**Good - Specific project first:**
```jql
project = ABC AND status = "In Progress" AND assignee = currentUser()
```
**Bad - User filter first:**
```jql
assignee = currentUser() AND status = "In Progress" AND project = ABC
```
**Good - Use functions:**
```jql
sprint IN openSprints() AND status != Done
```
**Bad - Hardcoded sprint:**
```jql
sprint = "Sprint 23" AND status != Done
```
**Good - Specific date:**
```jql
created >= 2024-01-01 AND created <= 2024-01-31
```
**Bad - Relative with high cost:**
```jql
created >= -365d AND created <= -335d
```
## Reporting Queries
**Velocity calculation:**
```jql
sprint = "Sprint 23" AND status = Done
```
*Then sum story points*
**Bug rate:**
```jql
project = ABC AND issuetype = Bug AND created >= startOfMonth()
```
**Average cycle time:**
```jql
project = ABC AND resolved >= startOfMonth()
AND resolved <= endOfMonth()
```
*Calculate time from In Progress to Done*
**Stories delivered this quarter:**
```jql
project = ABC AND issuetype = Story
AND resolved >= startOfYear() AND resolved <= endOfQuarter()
```
**Team capacity:**
```jql
assignee IN membersOf("engineering-team")
AND sprint IN openSprints()
```
*Sum original estimates*
## Notification & Watching Queries
**Issues I need to review:**
```jql
status = "Pending Review" AND assignee = currentUser()
```
**Issues assigned to me, high priority:**
```jql
assignee = currentUser() AND priority IN (Highest, High)
AND status != Done
```
**Issues created by me, not resolved:**
```jql
reporter = currentUser() AND status != Done
ORDER BY created DESC
```
## Advanced Functions
**Issues changed from status:**
```jql
status WAS "In Progress" AND status = "Done"
AND status CHANGED AFTER startOfWeek()
```
**Assignee changed:**
```jql
assignee CHANGED BY currentUser() AFTER -7d
```
**Issues re-opened:**
```jql
status WAS Done AND status != Done ORDER BY updated DESC
```
**Linked issues:**
```jql
issue IN linkedIssues("ABC-123") ORDER BY issuetype
```
**Parent epic:**
```jql
parent = ABC-123 ORDER BY rank
```
## Saved Filter Examples
**Daily Standup Filter:**
```jql
assignee = currentUser() AND sprint IN openSprints()
AND status != Done ORDER BY priority DESC
```
**Team Sprint Board Filter:**
```jql
project = ABC AND sprint IN openSprints() ORDER BY rank
```
**Bugs Dashboard Filter:**
```jql
project = ABC AND issuetype = Bug AND status != Done
ORDER BY priority DESC, created ASC
```
**Tech Debt Backlog:**
```jql
project = ABC AND labels = tech-debt AND status = Backlog
ORDER BY priority DESC
```
**Needs Triage:**
```jql
project = ABC AND status = "To Triage"
AND created >= -7d ORDER BY created ASC
```