From pm-skills
Atlassian Jira expert for creating and managing projects, planning, product discovery, JQL queries, workflows, custom fields, automation, reporting, and all Jira features. Use when setting up or configuring Jira projects, writing JQL and advanced searches, creating dashboards, designing workflows, or performing technical Jira operations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pm-skills:jira-expertThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Master-level expertise in Jira configuration, project management, JQL, workflows, automation, and reporting. Handles all technical and operational aspects of Jira.
Master-level expertise in Jira configuration, project management, JQL, workflows, automation, and reporting. Handles all technical and operational aspects of Jira.
All MCP examples in this skill use the real Atlassian Remote MCP tools (camelCase, surfaced as mcp__atlassian__<toolName>). The canonical tool list is project-management/references/atlassian-mcp-tools.md — never invent tool names; if a capability isn't listed there, it is not available via MCP.
Create an issue (call getAccessibleAtlassianResources once first to obtain cloudId):
mcp__atlassian__createJiraIssue (cloudId, projectKey="MYPROJ", issueTypeName="Story", summary="My new story")
Run a JQL query (build the JQL from natural language with the bundled script, then execute):
python3 scripts/jql_query_builder.py "high priority bugs assigned to me"
# → emits validated JQL, e.g.: assignee = currentUser() AND type = Bug AND status != Done
mcp__atlassian__searchJiraIssuesUsingJql (cloudId, jql="project = MYPROJ AND status != Done AND dueDate < now()")
Create a project: NOT available via MCP. Use the Jira web UI (Projects > Create project) or REST API (POST /rest/api/3/project).
For the full tool reference, see Atlassian MCP Integration. For JQL functions, see JQL Functions Reference. For report templates, see Reporting Templates.
Project creation is not available via MCP — perform steps 2-6 in the Jira web UI (
Projects > Create project) or via REST API (POST /rest/api/3/project). After creation, verify visibility withmcp__atlassian__getVisibleJiraProjectsand inspect issue types withmcp__atlassian__getJiraProjectIssueTypesMetadata.
Workflow/scheme editing is not available via MCP — configure in
Jira Settings > Issues > Workflows. Use the bundled validator to catch anti-patterns before deploying.
python3 scripts/workflow_validator.py workflow.json --format json
Input: a JSON file with the workflow's states and transitions. Consume the output: fix every reported anti-pattern (dead-end states, unreachable states, missing transitions) in the design before touching Jira.mcp__atlassian__getTransitionsForJiraIssue on a sample issue to confirm expected transitions surface, then mcp__atlassian__transitionJiraIssue to walk it through the flowStart with the bundled builder — it pattern-matches natural language to validated JQL:
python3 scripts/jql_query_builder.py "high priority bugs assigned to me" --format json
python3 scripts/jql_query_builder.py --patterns # list all supported query patterns
Consume the output: take the jql field from the JSON result (or the GENERATED JQL block in text mode) and execute it with mcp__atlassian__searchJiraIssuesUsingJql (cloudId, jql=<generated>). If the builder reports no pattern match, compose JQL manually using the reference below.
Basic Structure: field operator value
Common Operators:
=, != : equals, not equals~, !~ : contains, not contains>, <, >=, <= : comparisonin, not in : list membershipis empty, is not emptywas, was in, was notchangedPowerful JQL Examples:
Find overdue issues:
dueDate < now() AND status != Done
Sprint burndown issues:
sprint = 23 AND status changed TO "Done" DURING (startOfSprint(), endOfSprint())
Find stale issues:
updated < -30d AND status != Done
Cross-project epic tracking:
"Epic Link" = PROJ-123 ORDER BY rank
Velocity calculation:
sprint in closedSprints() AND resolution = Done
Team capacity:
assignee in (user1, user2) AND sprint in openSprints()
When to Create:
Field Types: Text, Numeric, Date, Select (single/multi/cascading), User picker
Configuration:
Link Types:
Best Practices:
Permission Schemes:
Security Levels:
Bulk Change:
Bulk Transitions:
Tip: Save frequently used queries as named filters instead of re-running complex JQL ad hoc. See Best Practices for performance guidance.
Date: startOfDay(), endOfDay(), startOfWeek(), endOfWeek(), startOfMonth(), endOfMonth(), startOfYear(), endOfYear()
Sprint: openSprints(), closedSprints(), futureSprints()
User: currentUser(), membersOf("group")
Advanced: issueHistory(), linkedIssues(), issuesWithFixVersions()
Tip: These JQL snippets can be saved as shared filters or wired directly into Dashboard gadgets (see Dashboard Creation).
| Report | JQL |
|---|---|
| Sprint Report | project = PROJ AND sprint = 23 |
| Team Velocity | assignee in (team) AND sprint in closedSprints() AND resolution = Done |
| Bug Trend | type = Bug AND created >= -30d |
| Blocker Analysis | priority = Blocker AND status != Done |
When to Escalate to Atlassian Admin:
When to Collaborate with Scrum Master:
When to Collaborate with Senior PM:
FROM Senior PM:
TO Senior PM:
FROM Scrum Master:
TO Scrum Master:
Data Quality:
Performance:
~ on large text fields is expensive)Governance:
Primary Tool: Atlassian Remote MCP server (bundled .mcp.json, server key atlassian). Tools surface as mcp__atlassian__<toolName>. Canonical tool list: project-management/references/atlassian-mcp-tools.md. Never invent tool names — if a capability isn't in that list, route to the web UI/REST API.
Key Operations with Example Calls (obtain cloudId once via mcp__atlassian__getAccessibleAtlassianResources):
Create an issue (check required fields first with getJiraIssueTypeMetaWithFields):
mcp__atlassian__createJiraIssue (cloudId, projectKey="MYPROJ", issueTypeName="Story", summary="My new story")
Execute a JQL query:
mcp__atlassian__searchJiraIssuesUsingJql (cloudId, jql="project = MYPROJ AND status != Done AND dueDate < now()")
Update an issue field:
mcp__atlassian__editJiraIssue (cloudId, issueIdOrKey="MYPROJ-42", fields=<payload — discover via tool schema>)
Transition an issue (status changes go through transitions, not field edits):
mcp__atlassian__getTransitionsForJiraIssue (cloudId, issueIdOrKey="MYPROJ-42")
mcp__atlassian__transitionJiraIssue (cloudId, issueIdOrKey="MYPROJ-42", transition=<id from previous call>)
Comment / log work / link issues:
mcp__atlassian__addCommentToJiraIssue (cloudId, issueIdOrKey="MYPROJ-42", body="...")
mcp__atlassian__addWorklogToJiraIssue (cloudId, issueIdOrKey="MYPROJ-42", timeSpent=<discover via tool schema>)
mcp__atlassian__createIssueLink (cloudId, link type from mcp__atlassian__getIssueLinkTypes)
Not available via MCP — use the web UI or REST API instead:
Projects > Create project or POST /rest/api/3/projectPOST /rest/agile/1.0/sprintFilters > Save as or POST /rest/api/3/filterIntegration Points:
project-management/confluence-expert/) — Documentation complements Jira workflowsproject-management/atlassian-admin/) — Permission and user management for Jira projectsnpx claudepluginhub ai-integr8tor/alirezarezvani-claude-skills --plugin pm-skillsCharts a path through ambiguous problems by creating investigation tickets on the issue tracker, then resolving them incrementally to clarify the route.