tech-plan-to-ticket
Skill2 starsChanged 13 days agoMITView on GitHub
Fetches a Confluence design review or tech spec page and creates a Jira root ticket with associated subtasks, or adds subtasks to an existing Jira ticket. Use when turning a Confluence page into Jira tickets, creating tasks from a tech plan, breaking down a design review into Jira issues, or at the Tasks phase of the SDD workflow.
- Reads credentials
In this repository18 other files it gives its agents.
- ado-open-prSkill
- ado-pr-code-reviewSkill
- ado-pr-resolve-commentsSkill
- ado-pr-teams-notifySkill
- agent-playtestSkill
- explain-diff-htmlSkill
- generate-pr-notesSkill
- git-commit-conventional-strictSkill
- install-atlassian-mcpSkill
- install-azure-devops-mcpSkill
- install-playwright-mcpSkill
- install-sentry-mcpSkill
- prd-to-sdd-specSkill
- sdd-qa-to-ticketSkill
- setup-project-configSkill
- spec-recalibrateSkill
- sync-api-specSkill
- tech-plan-to-wikiSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
31 rules. About 0 are common, 20 are distinctive, and 11 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈20
Distinctive · estimate
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
All generated Jira ticket descriptions must be based on the template at: references/jira-ticket-template.md (relative to this skill's …
- Distinctive: line 23
Use the template as a structural guide.
- Distinctive: line 27
All optional — anything not passed is asked for.
- Distinctive: line 35
No Jira key → Step 3 asks whether to create a new root ticket or reuse an existing one.
- Distinctive: line 43
Before using this skill, ensure:
- Very specific: line 58
If a search hint is provided, use mcp__atlassian__confluence_search to find matching pages and let the user select.
- Distinctive: line 70
Ask the user whether to create a new root ticket or use an existing Jira ticket as the base.
- Distinctive: line 71
If using an existing ticket, ask for the Jira issue key (e.g., "PROJ-123").
- Distinctive: line 76
Owner: Ask the user for the Assignee email or name for the tickets.
- Very specific: line 77
Project/Type: Use the Jira Project Key and Issue Type from docs/agents/atlassian.md as defaults (else EXAMPLE and Story) for the root …
- Very specific: line 80
If New Root Ticket: Use mcp__atlassian__jira_create_issue to create the root ticket.
- Very specific: line 81
If Existing Base Ticket: Use mcp__atlassian__jira_add_comment to add the plan and description as a comment to the existing ticket.
- Very specific: line 82
Create Subtasks: Use mcp__atlassian__jira_create_issue for each identified task, passing the root ticket's key/ID as the parent (whether …
- Distinctive: line 90
When analyzing the Confluence page:
- Distinctive: line 93
Look for the page title, "Overview", or "Objective" sections.
- Distinctive: line 95
If creating a new root ticket, use the page content to populate the Jira description (summarized).
- Distinctive: line 98
Look for tables, bulleted lists, "Requirements", "Tasks", or "Checklist" sections.
- Distinctive: line 100
If the page contains a "Technical Design" or "Implementation Plan", extract steps as subtasks.
- Distinctive: line 101
Ensure each subtask is distinct and not redundant.
- Very specific: line 106
All text within brackets MUST be UPPERCASE (e.g., [PROJECT][BACKEND], [FEATURE][API]).
- Very specific: line 112
For Existing Base Ticket: Do not modify the summary or description.
- Very specific: line 114
Summary: Follow the same pattern as root ticket: [TOPIC][SERVICE/COMPONENT] Description.
- Distinctive: line 115
Description: Use the structure from the template, tailored to the subtask.
- Distinctive: line 116
Project: Use the provided Project Key (must match the root ticket's project).
- Distinctive: line 117
IssueType: Use "Sub-task" for child issues.
- Distinctive: line 119
Assignee: Use the user-provided identifier.
- Distinctive: line 178
Batch Creation: If many subtasks are identified, inform the user you are creating them in sequence.
- Distinctive: line 179
Validation: If the Confluence page is empty or doesn't contain actionable items, ask the user for clarification.
- Very specific: line 180
Project Selection: Default to EXAMPLE but allow the user to override.
- Very specific: line 181
Mapping Custom Fields: If the project requires specific custom fields, use mcp__atlassian__jira_search_fields to identify them.
- Distinctive: line 182
Existing Ticket Mode: When using an existing ticket, verify the issue key exists and belongs to the correct project.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Confluence to Jira Tickets
Install this skill
npx skills add jamesyang124/agent-skills --skill tech-plan-to-ticket -gThis skill automates the process of turning documentation (like PRDs, tech specs, or meeting notes) into actionable Jira tickets. It fetches a Confluence page, analyzes its content to identify key tasks, and either creates a new parent ticket with multiple subtasks or adds subtasks to an existing Jira ticket as the base.
Jira Ticket Template (MANDATORY)
All generated Jira ticket descriptions must be based on the template at:
references/jira-ticket-template.md (relative to this skill's folder).
Use the template as a structural guide. Populate the sections based on the analysis of the Confluence page. If a section is not applicable, you may omit it, but keep the core structure (Summary, Context, Requirements).
Arguments
All optional — anything not passed is asked for.
| Token shape | Interpreted as |
| all digits | Confluence page ID |
matches [A-Z]+-\d+ | existing Jira ticket to use as the base — subtasks are added under it and the plan goes in a comment; its description is never overwritten |
| anything else | Confluence search hint (title / keywords) |
No Jira key → Step 3 asks whether to create a new root ticket or reuse an existing one.
Prerequisites
IMPORTANT: This skill requires the Atlassian MCP Server to be installed and configured.
Before using this skill, ensure:
- ✅ Atlassian MCP server is installed (see the
install-atlassian-mcpskill) - ✅ Jira and Confluence credentials are configured in
~/.env.mcp-atlassian - ✅ The following MCP tools are available:
mcp__atlassian__confluence_get_pagemcp__atlassian__confluence_searchmcp__atlassian__jira_create_issuemcp__atlassian__jira_add_commentmcp__atlassian__jira_get_all_projectsmcp__atlassian__jira_search_fields(optional, for finding custom fields)
Process
- Identify the Confluence Page:
- The user provides a page ID or a search hint (title/keywords).
- If a search hint is provided, use
mcp__atlassian__confluence_searchto find matching pages and let the user select. - Fetch the page content using
mcp__atlassian__confluence_get_page.
- Analyze Content:
- Analyze the retrieved content (Markdown/HTML) to identify:
- Project Context: Determine which Jira project this belongs to.
- Root Ticket: A high-level summary of the overall goal (e.g., "Implement Feature X").
- Subtasks: Granular, actionable tasks derived from requirements, checklists, or technical details in the page.
- Suggest TOPIC and SERVICE/COMPONENT based on the page content.
- Propose a list of tickets to the user before creating them.
- Analyze the retrieved content (Markdown/HTML) to identify:
- Choose Base Ticket Mode:
- Ask the user whether to create a new root ticket or use an existing Jira ticket as the base.
- If using an existing ticket, ask for the Jira issue key (e.g., "PROJ-123").
- For existing tickets, the plan and description from the Confluence page will be added as a comment to the ticket, without overwriting the original description.
- Configure Jira Settings (Interactive):
- Brackets: Present suggested
[TOPIC]and[SERVICE/COMPONENT]values. Ask the user to confirm or provide new ones. (Applies to new root ticket and subtasks.) - Owner: Ask the user for the Assignee email or name for the tickets.
- Project/Type: Use the Jira Project Key and Issue Type from
docs/agents/atlassian.mdas defaults (else EXAMPLE and Story) for the root ticket (if creating new). Allow the user to override.
- Brackets: Present suggested
- Create Tickets:
- If New Root Ticket: Use
mcp__atlassian__jira_create_issueto create the root ticket. - If Existing Base Ticket: Use
mcp__atlassian__jira_add_commentto add the plan and description as a comment to the existing ticket. - Create Subtasks: Use
mcp__atlassian__jira_create_issuefor each identified task, passing the root ticket's key/ID as theparent(whether new or existing).
- If New Root Ticket: Use
- Confirm and Link:
- Provide the user with links to the created Jira tickets.
- (Optional) Add a comment to the Confluence page with the Jira ticket links using
mcp__atlassian__confluence_add_comment.
Analysis Guidelines
When analyzing the Confluence page:
Identifying the Root Ticket
- Look for the page title, "Overview", or "Objective" sections.
- The summary should be concise but descriptive.
- If creating a new root ticket, use the page content to populate the Jira description (summarized). If using an existing ticket as base, the description will be added as a comment instead.
Identifying Subtasks
- Look for tables, bulleted lists, "Requirements", "Tasks", or "Checklist" sections.
- Each subtask should have a clear, actionable summary.
- If the page contains a "Technical Design" or "Implementation Plan", extract steps as subtasks.
- Ensure each subtask is distinct and not redundant.
Mapping to Jira Fields
- For New Root Ticket:
- Summary: MANDATORY: Follow the pattern
[TOPIC][SERVICE/COMPONENT] Description.- All text within brackets MUST be UPPERCASE (e.g.,
[PROJECT][BACKEND],[FEATURE][API]). - The
TOPICrefers to the main title or key topic of the documentation (e.g.,PROJECT,FEATURE). - The
SERVICE/COMPONENTrefers to the specific system or module (e.g.,API,FRONTEND,DATABASE). - The
Descriptionmust start with an uppercase letter. - Example:
[PROJECT][BACKEND] Dynamic URL Domain Migration - Versioned Content URLs.
- All text within brackets MUST be UPPERCASE (e.g.,
- Description: MANDATORY: Use the structure defined in
references/jira-ticket-template.md. Include context from the Confluence page, link back to the source, and list clear acceptance criteria.
- Summary: MANDATORY: Follow the pattern
- For Existing Base Ticket: Do not modify the summary or description. Add the plan and description as a comment using
mcp__atlassian__jira_add_comment. - For Subtasks (always created):
- Summary: Follow the same pattern as root ticket:
[TOPIC][SERVICE/COMPONENT] Description. - Description: Use the structure from the template, tailored to the subtask.
- Project: Use the provided Project Key (must match the root ticket's project).
- IssueType: Use "Sub-task" for child issues.
- Parent: The key of the root ticket (new or existing).
- Assignee: Use the user-provided identifier.
- Summary: Follow the same pattern as root ticket:
Workflow Example
Example 1: Creating New Root Ticket
User: "Create Jira tickets from this Confluence page: 'CMS Feature Spec - User Profiles'"
Agent:
- Uses
mcp__atlassian__confluence_searchto find the page. - Retrieves page content.
- Analyzes content and presents a proposal:
Based on the spec, I propose: - Root Ticket: Implement CMS User Profile Management - Subtasks: ... I've suggested the following brackets: - [TOPIC]: USER_PROFILES - [SERVICE/COMPONENT]: CMS Settings: - Project: EXAMPLE (default) - Root Issue Type: Story (default) Would you like to create a new root ticket or use an existing Jira ticket as the base? (Type 'new' or provide the issue key, e.g., 'PROJ-123') - User responds: "new"
- Agent asks for confirmation on brackets, assignee, etc.
- Agent creates the root ticket and subtasks.
- Agent provides the URLs for all created tickets.
Example 2: Using Existing Jira Ticket as Base
User: "Add subtasks from this Confluence page to existing ticket PROJ-456"
Agent:
- Uses
mcp__atlassian__confluence_searchto find the page. - Retrieves page content.
- Analyzes content and presents a proposal:
Based on the spec, I propose adding subtasks to PROJ-456: - Subtasks: ... I've suggested the following brackets: - [TOPIC]: USER_PROFILES - [SERVICE/COMPONENT]: CMS The plan and description will be added as a comment to PROJ-456 without overwriting its description. Confirm assignee and proceed? (Type y or provide assignee) - User confirms.
- Agent adds a comment to PROJ-456 with the plan/description.
- Agent creates subtasks under PROJ-456.
- Agent provides the URLs for the subtasks.
Tips for the Agent
- Batch Creation: If many subtasks are identified, inform the user you are creating them in sequence.
- Validation: If the Confluence page is empty or doesn't contain actionable items, ask the user for clarification.
- Project Selection: Default to EXAMPLE but allow the user to override. You can use
mcp__atlassian__jira_get_all_projectsto show a list of available projects if they wish to change. Ensure the project matches for existing base tickets. - Mapping Custom Fields: If the project requires specific custom fields, use
mcp__atlassian__jira_search_fieldsto identify them. - Existing Ticket Mode: When using an existing ticket, verify the issue key exists and belongs to the correct project. Do not overwrite the ticket's description; always use comments for additional information.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

