skills/spec-to-backlog/SKILL.md
Automatically convert Confluence specification documents into structured Jira backlogs with Epics and implementation tickets. When an agent needs to: (1) Create Jira tickets from a Confluence page, (2) Generate a backlog from a specification, (3) Break down a spec into implementation tasks, or (4) Convert requirements into Jira issues. Handles reading Confluence pages, analyzing specifications, creating Epics with proper structure, and generating detailed implementation tickets linked to the Epic.
npx skillsauth add atlassian/atlassian-mcp-server spec-to-backlogInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform Confluence specification documents into structured Jira backlogs automatically. This skill reads requirement documents from Confluence, intelligently breaks them down into logical implementation tasks, creates an Epic first to organize the work, then generates individual Jira tickets linked to that Epic—eliminating tedious manual copy-pasting.
CRITICAL: Always follow this exact sequence:
Why Epic must be created first: Child tickets need the Epic key to link properly during creation. Creating tickets first will result in orphaned tickets.
When triggered, obtain the Confluence page content:
Extract the cloud ID and page ID from the URL pattern:
https://[site].atlassian.net/wiki/spaces/[SPACE]/pages/[PAGE_ID]/[title][site].atlassian.net or by calling getAccessibleAtlassianResourcesUse the search tool to find the page:
search(
cloudId="...",
query="type=page AND title~'[search terms]'"
)
If multiple pages match, ask the user to clarify which one to use.
Call getConfluencePage with the cloudId and pageId:
getConfluencePage(
cloudId="...",
pageId="123456",
contentFormat="markdown"
)
This returns the page content in Markdown format, which you'll analyze in Step 3.
Before analyzing the spec, determine the target Jira project:
"Which Jira project should I create these tickets in? Please provide the project key (e.g., PROJ, ENG, PRODUCT)."
Call getVisibleJiraProjects to show available projects:
getVisibleJiraProjects(
cloudId="...",
action="create"
)
Present the list: "I found these projects you can create issues in: PROJ (Project Alpha), ENG (Engineering), PRODUCT (Product Team)."
Call getJiraProjectIssueTypesMetadata to understand what issue types are available:
getJiraProjectIssueTypesMetadata(
cloudId="...",
projectIdOrKey="PROJ"
)
Identify available issue types:
Select appropriate issue types for child tickets:
The skill should intelligently choose issue types based on the specification content:
Use "Bug" when the spec describes:
Use "Story" when the spec describes:
Use "Task" when the spec describes:
Fallback logic:
Store the selected issue types for use in Step 6:
Read the Confluence page content and internally decompose it into:
What is the overall objective or feature being implemented? This becomes your Epic.
Example Epic summaries:
Break the work into logical, independently implementable tasks.
Breakdown principles:
Consider these dimensions:
Common task patterns:
Use action verbs:
Before creating anything, show the user your planned breakdown:
Format:
I've analyzed the spec and here's the backlog I'll create:
**Epic:** [Epic Summary]
[Brief description of epic scope]
**Implementation Tickets (7):**
1. [Story] [Task 1 Summary]
2. [Task] [Task 2 Summary]
3. [Story] [Task 3 Summary]
4. [Bug] [Task 4 Summary]
5. [Task] [Task 5 Summary]
6. [Story] [Task 6 Summary]
7. [Task] [Task 7 Summary]
Shall I create these tickets in [PROJECT KEY]?
The issue type labels show what type each ticket will be created as:
Wait for user confirmation before proceeding. This allows them to:
If user requests changes, adjust the breakdown and re-present.
CRITICAL: The Epic must be created before any child tickets.
Call createJiraIssue with:
createJiraIssue(
cloudId="...",
projectKey="PROJ",
issueTypeName="Epic",
summary="[Epic Summary from Step 3]",
description="[Epic Description - see below]"
)
## Overview
[1-2 sentence summary of what this epic delivers]
## Source
Confluence Spec: [Link to Confluence page]
## Objectives
- [Key objective 1]
- [Key objective 2]
- [Key objective 3]
## Scope
[Brief description of what's included and what's not]
## Success Criteria
- [Measurable criterion 1]
- [Measurable criterion 2]
- [Measurable criterion 3]
## Technical Notes
[Any important technical context from the spec]
The response will include the Epic's key (e.g., "PROJ-123"). Save this key—you'll need it for every child ticket.
Example response:
{
"key": "PROJ-123",
"id": "10001",
"self": "https://yoursite.atlassian.net/rest/api/3/issue/10001"
}
Confirm Epic creation to user: "✅ Created Epic: PROJ-123 - User Authentication System"
Now create each implementation task as a child ticket linked to the Epic.
Determine the appropriate issue type for this specific task:
Call createJiraIssue with:
createJiraIssue(
cloudId="...",
projectKey="PROJ",
issueTypeName="[Story/Task/Bug based on task content]",
summary="[Task Summary]",
description="[Task Description - see below]",
parent="PROJ-123" # The Epic key from Step 5
)
Example issue type selection:
Use action verbs and be specific:
## Context
[Brief context for this task from the Confluence spec]
## Requirements
- [Requirement 1]
- [Requirement 2]
- [Requirement 3]
## Technical Details
[Specific technical information relevant to this task]
- Technologies: [e.g., Node.js, React, PostgreSQL]
- Components: [e.g., API routes, database tables, UI components]
- Dependencies: [e.g., requires PROJ-124 to be completed first]
## Acceptance Criteria
- [ ] [Testable criterion 1]
- [ ] [Testable criterion 2]
- [ ] [Testable criterion 3]
## Related
- Confluence Spec: [Link to relevant section if possible]
- Epic: PROJ-123
Make them testable and specific:
Track each created ticket key for the summary.
After all tickets are created, present a comprehensive summary:
✅ Backlog created successfully!
**Epic:** PROJ-123 - User Authentication System
https://yoursite.atlassian.net/browse/PROJ-123
**Implementation Tickets (7):**
1. PROJ-124 - Design authentication database schema
https://yoursite.atlassian.net/browse/PROJ-124
2. PROJ-125 - Implement user registration API endpoint
https://yoursite.atlassian.net/browse/PROJ-125
3. PROJ-126 - Implement user login API endpoint
https://yoursite.atlassian.net/browse/PROJ-126
4. PROJ-127 - Build login form UI components
https://yoursite.atlassian.net/browse/PROJ-127
5. PROJ-128 - Build registration form UI components
https://yoursite.atlassian.net/browse/PROJ-128
6. PROJ-129 - Add authentication integration to existing features
https://yoursite.atlassian.net/browse/PROJ-129
7. PROJ-130 - Write authentication tests and documentation
https://yoursite.atlassian.net/browse/PROJ-130
**Source:** https://yoursite.atlassian.net/wiki/spaces/SPECS/pages/123456
**Next Steps:**
- Review tickets in Jira for accuracy and completeness
- Assign tickets to team members
- Estimate story points if your team uses them
- Add any additional labels or custom field values
- Schedule work for the upcoming sprint
If user references multiple Confluence pages:
If user wants to add tickets to an existing Epic:
If ticket creation fails due to required fields:
Use getJiraIssueTypeMetaWithFields to identify what fields are required:
getJiraIssueTypeMetaWithFields(
cloudId="...",
projectIdOrKey="PROJ",
issueTypeId="10001"
)
Ask user for values: "This project requires a 'Priority' field. What priority should I use? (e.g., High, Medium, Low)"
Include in additional_fields when creating:
additional_fields={
"priority": {"name": "High"}
}
For specs that would generate 15+ tickets:
Some projects use "Subtask" issue types:
If the Confluence page lacks detail:
If createJiraIssue fails:
getJiraProjectIssueTypesMetadata to verify issue type availabilityEpic: Product Search and Filtering
Tickets:
Epic: Resolve Dashboard Load Time Issues
Tickets:
Epic: Automated Deployment Pipeline
Tickets:
development
Intelligently triage bug reports and error messages by searching for duplicates in Jira and offering to create new issues or add comments to existing ones. When an agent needs to: (1) Triage a bug report or error message, (2) Check if an issue is a duplicate, (3) Find similar past issues, (4) Create a new bug ticket with proper context, or (5) Add information to an existing ticket. Searches Jira for similar issues, identifies duplicates, checks fix history, and helps create well-structured bug reports.
development
Search across company knowledge bases (Confluence, Jira, internal docs) to find and explain internal concepts, processes, and technical details. When an agent needs to: (1) Find or search for information about systems, terminology, processes, deployment, authentication, infrastructure, architecture, or technical concepts, (2) Search internal documentation, knowledge base, company docs, or our docs, (3) Explain what something is, how it works, or look up information, or (4) Synthesize information from multiple sources. Searches in parallel and provides cited answers.
development
Generate project status reports from Jira issues and publish to Confluence. When an agent needs to: (1) Create a status report for a project, (2) Summarize project progress or updates, (3) Generate weekly/daily reports from Jira, (4) Publish status summaries to Confluence, or (5) Analyze project blockers and completion. Queries Jira issues, categorizes by status/priority, and creates formatted reports for delivery managers and executives.
data-ai
Analyze meeting notes to find action items and create Jira tasks for assigned work. When an agent needs to: (1) Create Jira tasks or tickets from meeting notes, (2) Extract or find action items from notes or Confluence pages, (3) Parse meeting notes for assigned tasks, or (4) Analyze notes and generate tasks for team members. Identifies assignees, looks up account IDs, and creates tasks with proper context.