[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-spec-to-backlog":3,"mdc--afkvf0-key":36,"related-repo-openai-spec-to-backlog":2626,"related-org-openai-spec-to-backlog":2750},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"spec-to-backlog","convert specifications to Jira backlogs","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Confluence","confluence","tag",{"name":17,"slug":18,"type":15},"Jira","jira",{"name":20,"slug":21,"type":15},"Project Management","project-management",{"name":23,"slug":24,"type":15},"Specs","specs",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-04-16T05:12:12.610758",null,465,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fatlassian-rovo\u002Fskills\u002Fspec-to-backlog","---\nname: spec-to-backlog\ndescription: \"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.\"\n---\n\n# Spec to Backlog\n\n## Overview\n\nTransform 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.\n\n## Core Workflow\n\n**CRITICAL: Always follow this exact sequence:**\n\n1. **Fetch Confluence Page** → Get the specification content\n2. **Ask for Project Key** → Identify target Jira project\n3. **Analyze Specification** → Break down into logical tasks (internally, don't create yet)\n4. **Present Breakdown** → Show user the planned Epic and tickets\n5. **Create Epic FIRST** → Establish parent Epic and capture its key\n6. **Create Child Tickets** → Generate tickets linked to the Epic\n7. **Provide Summary** → Present all created items with links\n\n**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.\n\n---\n\n## Step 1: Fetch Confluence Page\n\nWhen triggered, obtain the Confluence page content:\n\n### If user provides a Confluence URL:\n\nExtract the cloud ID and page ID from the URL pattern:\n- Standard format: `https:\u002F\u002F[site].atlassian.net\u002Fwiki\u002Fspaces\u002F[SPACE]\u002Fpages\u002F[PAGE_ID]\u002F[title]`\n- The cloud ID can be extracted from `[site].atlassian.net` or by calling `getAccessibleAtlassianResources`\n- The page ID is the numeric value in the URL path\n\n### If user provides only a page title or description:\n\nUse the `search` tool to find the page:\n```\nsearch(\n  cloudId=\"...\",\n  query=\"type=page AND title~'[search terms]'\"\n)\n```\n\nIf multiple pages match, ask the user to clarify which one to use.\n\n### Fetch the page:\n\nCall `getConfluencePage` with the cloudId and pageId:\n```\ngetConfluencePage(\n  cloudId=\"...\",\n  pageId=\"123456\",\n  contentFormat=\"markdown\"\n)\n```\n\nThis returns the page content in Markdown format, which you'll analyze in Step 3.\n\n---\n\n## Step 2: Ask for Project Key\n\n**Before analyzing the spec**, determine the target Jira project:\n\n### Ask the user:\n\"Which Jira project should I create these tickets in? Please provide the project key (e.g., PROJ, ENG, PRODUCT).\"\n\n### If user is unsure:\nCall `getVisibleJiraProjects` to show available projects:\n```\ngetVisibleJiraProjects(\n  cloudId=\"...\",\n  action=\"create\"\n)\n```\n\nPresent the list: \"I found these projects you can create issues in: PROJ (Project Alpha), ENG (Engineering), PRODUCT (Product Team).\"\n\n### Once you have the project key:\nCall `getJiraProjectIssueTypesMetadata` to understand what issue types are available:\n```\ngetJiraProjectIssueTypesMetadata(\n  cloudId=\"...\",\n  projectIdOrKey=\"PROJ\"\n)\n```\n\n**Identify available issue types:**\n- Which issue type is \"Epic\" (or similar parent type like \"Initiative\")\n- What child issue types are available: \"Story\", \"Task\", \"Bug\", \"Sub-task\", etc.\n\n**Select appropriate issue types for child tickets:**\n\nThe skill should intelligently choose issue types based on the specification content:\n\n**Use \"Bug\" when the spec describes:**\n- Fixing existing problems or defects\n- Resolving errors or incorrect behavior\n- Addressing performance issues\n- Correcting data inconsistencies\n- Keywords: \"fix\", \"resolve\", \"bug\", \"issue\", \"problem\", \"error\", \"broken\"\n\n**Use \"Story\" when the spec describes:**\n- New user-facing features or functionality\n- User experience improvements\n- Customer-requested capabilities\n- Product enhancements\n- Keywords: \"feature\", \"user can\", \"add ability to\", \"new\", \"enable users\"\n\n**Use \"Task\" when the spec describes:**\n- Technical work without direct user impact\n- Infrastructure or DevOps work\n- Refactoring or optimization\n- Documentation or tooling\n- Configuration or setup\n- Keywords: \"implement\", \"setup\", \"configure\", \"optimize\", \"refactor\", \"infrastructure\"\n\n**Fallback logic:**\n1. If \"Story\" is available and content suggests new features → use \"Story\"\n2. If \"Bug\" is available and content suggests fixes → use \"Bug\"\n3. If \"Task\" is available → use \"Task\" for technical work\n4. If none of the above are available → use the first available non-Epic, non-Subtask issue type\n\n**Store the selected issue types for use in Step 6:**\n- Epic issue type name (e.g., \"Epic\")\n- Default child issue type (e.g., \"Story\" or \"Task\")\n- Bug issue type name if available (e.g., \"Bug\")\n\n---\n\n## Step 3: Analyze Specification\n\nRead the Confluence page content and **internally** decompose it into:\n\n### Epic-Level Goal\nWhat is the overall objective or feature being implemented? This becomes your Epic.\n\n**Example Epic summaries:**\n- \"User Authentication System\"\n- \"Payment Gateway Integration\"  \n- \"Dashboard Performance Optimization\"\n- \"Mobile App Notifications Feature\"\n\n### Implementation Tasks\nBreak the work into logical, independently implementable tasks.\n\n**Breakdown principles:**\n- **Size:** 3-10 tasks per spec typically (avoid over-granularity)\n- **Clarity:** Each task should be specific and actionable\n- **Independence:** Tasks can be worked on separately when possible\n- **Completeness:** Include backend, frontend, testing, documentation, infrastructure as needed\n- **Grouping:** Related functionality stays in the same ticket\n\n**Consider these dimensions:**\n- Technical layers: Backend API, Frontend UI, Database, Infrastructure\n- Work types: Implementation, Testing, Documentation, Deployment\n- Features: Break complex features into sub-features\n- Dependencies: Identify prerequisite work\n\n**Common task patterns:**\n- \"Design [component] database schema\"\n- \"Implement [feature] API endpoints\"\n- \"Build [component] UI components\"\n- \"Add [integration] to existing [system]\"\n- \"Write tests for [feature]\"\n- \"Update documentation for [feature]\"\n\n**Use action verbs:**\n- Implement, Create, Build, Add, Design, Integrate, Update, Fix, Optimize, Configure, Deploy, Test, Document\n\n---\n\n## Step 4: Present Breakdown to User\n\n**Before creating anything**, show the user your planned breakdown:\n\n**Format:**\n```\nI've analyzed the spec and here's the backlog I'll create:\n\n**Epic:** [Epic Summary]\n[Brief description of epic scope]\n\n**Implementation Tickets (7):**\n1. [Story] [Task 1 Summary]\n2. [Task] [Task 2 Summary]  \n3. [Story] [Task 3 Summary]\n4. [Bug] [Task 4 Summary]\n5. [Task] [Task 5 Summary]\n6. [Story] [Task 6 Summary]\n7. [Task] [Task 7 Summary]\n\nShall I create these tickets in [PROJECT KEY]?\n```\n\n**The issue type labels show what type each ticket will be created as:**\n- [Story] - New user-facing feature\n- [Task] - Technical implementation work\n- [Bug] - Fix or resolve an issue\n\n**Wait for user confirmation** before proceeding. This allows them to:\n- Request changes to the breakdown\n- Confirm the scope is correct\n- Adjust the number or focus of tickets\n\nIf user requests changes, adjust the breakdown and re-present.\n\n---\n\n## Step 5: Create Epic FIRST\n\n**CRITICAL:** The Epic must be created before any child tickets.\n\n### Create the Epic:\n\nCall `createJiraIssue` with:\n\n```\ncreateJiraIssue(\n  cloudId=\"...\",\n  projectKey=\"PROJ\",\n  issueTypeName=\"Epic\",\n  summary=\"[Epic Summary from Step 3]\",\n  description=\"[Epic Description - see below]\"\n)\n```\n\n### Epic Description Structure:\n\n```markdown\n## Overview\n[1-2 sentence summary of what this epic delivers]\n\n## Source\nConfluence Spec: [Link to Confluence page]\n\n## Objectives\n- [Key objective 1]\n- [Key objective 2]\n- [Key objective 3]\n\n## Scope\n[Brief description of what's included and what's not]\n\n## Success Criteria\n- [Measurable criterion 1]\n- [Measurable criterion 2]\n- [Measurable criterion 3]\n\n## Technical Notes\n[Any important technical context from the spec]\n```\n\n### Capture the Epic Key:\n\nThe response will include the Epic's key (e.g., \"PROJ-123\"). **Save this key**—you'll need it for every child ticket.\n\n**Example response:**\n```json\n{\n  \"key\": \"PROJ-123\",\n  \"id\": \"10001\",\n  \"self\": \"https:\u002F\u002Fyoursite.atlassian.net\u002Frest\u002Fapi\u002F3\u002Fissue\u002F10001\"\n}\n```\n\n**Confirm Epic creation to user:**\n\"✅ Created Epic: PROJ-123 - User Authentication System\"\n\n---\n\n## Step 6: Create Child Tickets\n\nNow create each implementation task as a child ticket linked to the Epic.\n\n### For each task:\n\n**Determine the appropriate issue type for this specific task:**\n- If the task involves fixing\u002Fresolving an issue → use \"Bug\" (if available)\n- If the task involves new user-facing features → use \"Story\" (if available)\n- If the task involves technical\u002Finfrastructure work → use \"Task\" (if available)\n- Otherwise → use the default child issue type from Step 2\n\nCall `createJiraIssue` with:\n\n```\ncreateJiraIssue(\n  cloudId=\"...\",\n  projectKey=\"PROJ\",\n  issueTypeName=\"[Story\u002FTask\u002FBug based on task content]\",\n  summary=\"[Task Summary]\",\n  description=\"[Task Description - see below]\",\n  parent=\"PROJ-123\"  # The Epic key from Step 5\n)\n```\n\n**Example issue type selection:**\n- \"Fix authentication timeout bug\" → Use \"Bug\"\n- \"Build user dashboard UI\" → Use \"Story\"\n- \"Configure CI\u002FCD pipeline\" → Use \"Task\"\n- \"Implement password reset API\" → Use \"Story\" (new user feature)\n\n### Task Summary Format:\n\nUse action verbs and be specific:\n- ✅ \"Implement user registration API endpoint\"\n- ✅ \"Design authentication database schema\"\n- ✅ \"Build login form UI components\"\n- ❌ \"Do backend work\" (too vague)\n- ❌ \"Frontend\" (not actionable)\n\n### Task Description Structure:\n\n```markdown\n## Context\n[Brief context for this task from the Confluence spec]\n\n## Requirements\n- [Requirement 1]\n- [Requirement 2]\n- [Requirement 3]\n\n## Technical Details\n[Specific technical information relevant to this task]\n- Technologies: [e.g., Node.js, React, PostgreSQL]\n- Components: [e.g., API routes, database tables, UI components]\n- Dependencies: [e.g., requires PROJ-124 to be completed first]\n\n## Acceptance Criteria\n- [ ] [Testable criterion 1]\n- [ ] [Testable criterion 2]\n- [ ] [Testable criterion 3]\n\n## Related\n- Confluence Spec: [Link to relevant section if possible]\n- Epic: PROJ-123\n```\n\n### Acceptance Criteria Best Practices:\n\nMake them **testable** and **specific**:\n- ✅ \"API returns 201 status on successful user creation\"\n- ✅ \"Password must be at least 8 characters and hashed with bcrypt\"\n- ✅ \"Login form validates email format before submission\"\n- ❌ \"User can log in\" (too vague)\n- ❌ \"It works correctly\" (not testable)\n\n### Create all tickets sequentially:\n\nTrack each created ticket key for the summary.\n\n---\n\n## Step 7: Provide Summary\n\nAfter all tickets are created, present a comprehensive summary:\n\n```\n✅ Backlog created successfully!\n\n**Epic:** PROJ-123 - User Authentication System\nhttps:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-123\n\n**Implementation Tickets (7):**\n\n1. PROJ-124 - Design authentication database schema\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-124\n\n2. PROJ-125 - Implement user registration API endpoint\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-125\n\n3. PROJ-126 - Implement user login API endpoint\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-126\n\n4. PROJ-127 - Build login form UI components\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-127\n\n5. PROJ-128 - Build registration form UI components\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-128\n\n6. PROJ-129 - Add authentication integration to existing features\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-129\n\n7. PROJ-130 - Write authentication tests and documentation\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-130\n\n**Source:** https:\u002F\u002Fyoursite.atlassian.net\u002Fwiki\u002Fspaces\u002FSPECS\u002Fpages\u002F123456\n\n**Next Steps:**\n- Review tickets in Jira for accuracy and completeness\n- Assign tickets to team members\n- Estimate story points if your team uses them\n- Add any additional labels or custom field values\n- Schedule work for the upcoming sprint\n```\n\n---\n\n## Edge Cases & Troubleshooting\n\n### Multiple Specs or Pages\n\n**If user references multiple Confluence pages:**\n- Process each separately, or ask which to prioritize\n- Consider creating separate Epics for distinct features\n- \"I see you've provided 3 spec pages. Should I create separate Epics for each, or would you like me to focus on one first?\"\n\n### Existing Epic\n\n**If user wants to add tickets to an existing Epic:**\n- Skip Epic creation (Step 5)\n- Ask for the existing Epic key: \"What's the Epic key you'd like to add tickets to? (e.g., PROJ-100)\"\n- Proceed with Step 6 using the provided Epic key\n\n### Custom Required Fields\n\n**If ticket creation fails due to required fields:**\n1. Use `getJiraIssueTypeMetaWithFields` to identify what fields are required:\n   ```\n   getJiraIssueTypeMetaWithFields(\n     cloudId=\"...\",\n     projectIdOrKey=\"PROJ\",\n     issueTypeId=\"10001\"\n   )\n   ```\n\n2. Ask user for values: \"This project requires a 'Priority' field. What priority should I use? (e.g., High, Medium, Low)\"\n\n3. Include in `additional_fields` when creating:\n   ```\n   additional_fields={\n     \"priority\": {\"name\": \"High\"}\n   }\n   ```\n\n### Large Specifications\n\n**For specs that would generate 15+ tickets:**\n- Present the full breakdown to user\n- Ask: \"This spec would create 18 tickets. Should I create all of them, or would you like to adjust the scope?\"\n- Offer to create a subset first: \"I can create the first 10 tickets now and wait for your feedback before creating the rest.\"\n\n### Subtasks vs Tasks\n\n**Some projects use \"Subtask\" issue types:**\n- If metadata shows \"Subtask\" is available, you can use it for more granular work\n- Subtasks link to parent tasks (not Epics directly)\n- Structure: Epic → Task → Subtasks\n\n### Ambiguous Specifications\n\n**If the Confluence page lacks detail:**\n- Create fewer, broader tickets\n- Note in ticket descriptions: \"Detailed requirements need to be defined during refinement\"\n- Ask user: \"The spec is light on implementation details. Should I create high-level tickets that can be refined later?\"\n\n### Failed API Calls\n\n**If `createJiraIssue` fails:**\n1. Check the error message for specific issues (permissions, required fields, invalid values)\n2. Use `getJiraProjectIssueTypesMetadata` to verify issue type availability\n3. Inform user: \"I encountered an error creating tickets: [error message]. This might be due to project permissions or required fields.\"\n\n---\n\n## Tips for High-Quality Breakdowns\n\n### Be Specific\n- ❌ \"Do frontend work\"\n- ✅ \"Create login form UI with email\u002Fpassword inputs and validation\"\n\n### Include Technical Context\n- Mention specific technologies when clear from spec\n- Reference components, services, or modules\n- Note integration points\n\n### Logical Grouping\n- Related work stays in the same ticket\n- Don't split artificially: \"Build user profile page\" includes both UI and API integration\n- Do split when different specialties: Separate backend API task from frontend UI task if worked on by different people\n\n### Avoid Duplication\n- Don't create redundant tickets for the same functionality\n- If multiple features need the same infrastructure, create one infrastructure ticket they all depend on\n\n### Explicit Testing\n- Include testing as part of feature tasks (\"Implement X with unit tests\")\n- OR create separate testing tasks for complex features (\"Write integration tests for authentication flow\")\n\n### Documentation Tasks\n- For user-facing features: Include \"Update user documentation\" or \"Create help articles\"\n- For developer tools: Include \"Update API documentation\" or \"Write integration guide\"\n\n### Dependencies\n- Note prerequisites in ticket descriptions\n- Use \"Depends on\" or \"Blocks\" relationships in Jira if available\n- Sequence tickets logically (infrastructure → implementation → testing)\n\n---\n\n## Examples of Good Breakdowns\n\n### Example 1: New Feature - Search Functionality\n\n**Epic:** Product Search and Filtering\n\n**Tickets:**\n1. [Task] Design search index schema and data structure\n2. [Task] Implement backend search API with Elasticsearch\n3. [Story] Build search input and results UI components\n4. [Story] Add advanced filtering (price, category, ratings)\n5. [Story] Implement search suggestions and autocomplete\n6. [Task] Optimize search performance and add caching\n7. [Task] Write search integration tests and documentation\n\n### Example 2: Bug Fix - Performance Issue\n\n**Epic:** Resolve Dashboard Load Time Issues\n\n**Tickets:**\n1. [Task] Profile and identify performance bottlenecks\n2. [Bug] Optimize database queries with indexes and caching\n3. [Bug] Implement lazy loading for dashboard widgets\n4. [Bug] Add pagination to large data tables\n5. [Task] Set up performance monitoring and alerts\n\n### Example 3: Infrastructure - CI\u002FCD Pipeline\n\n**Epic:** Automated Deployment Pipeline\n\n**Tickets:**\n1. [Task] Set up GitHub Actions workflow configuration\n2. [Task] Implement automated testing in CI pipeline\n3. [Task] Configure staging environment deployment\n4. [Task] Implement blue-green production deployment\n5. [Task] Add deployment rollback mechanism\n6. [Task] Create deployment runbook and documentation\n\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,49,56,70,76,84,159,169,173,179,184,191,196,236,242,255,267,272,278,291,300,305,308,314,324,330,335,341,353,362,367,373,385,394,402,415,423,428,436,464,472,500,508,541,549,572,580,598,601,607,619,625,630,638,661,667,672,680,733,741,764,772,850,858,866,869,875,885,893,902,910,943,953,971,976,979,985,995,1001,1013,1022,1028,1277,1283,1295,1303,1442,1452,1455,1461,1466,1472,1480,1503,1513,1522,1530,1553,1559,1564,1592,1598,1842,1848,1866,1894,1900,1905,1908,1914,1919,1928,1931,1937,1943,1951,1969,1975,1983,2001,2007,2015,2067,2073,2081,2099,2105,2113,2131,2137,2145,2163,2169,2184,2215,2218,2224,2230,2243,2249,2267,2273,2291,2297,2310,2316,2329,2335,2348,2354,2372,2375,2381,2387,2397,2405,2471,2477,2486,2493,2541,2547,2556,2563,2620],{"type":42,"tag":43,"props":44,"children":45},"element","h1",{"id":4},[46],{"type":47,"value":48},"text","Spec to Backlog",{"type":42,"tag":50,"props":51,"children":53},"h2",{"id":52},"overview",[54],{"type":47,"value":55},"Overview",{"type":42,"tag":57,"props":58,"children":59},"p",{},[60,62,68],{"type":47,"value":61},"Transform Confluence specification documents into structured Jira backlogs automatically. This skill reads requirement documents from Confluence, intelligently breaks them down into logical implementation tasks, ",{"type":42,"tag":63,"props":64,"children":65},"strong",{},[66],{"type":47,"value":67},"creates an Epic first",{"type":47,"value":69}," to organize the work, then generates individual Jira tickets linked to that Epic—eliminating tedious manual copy-pasting.",{"type":42,"tag":50,"props":71,"children":73},{"id":72},"core-workflow",[74],{"type":47,"value":75},"Core Workflow",{"type":42,"tag":57,"props":77,"children":78},{},[79],{"type":42,"tag":63,"props":80,"children":81},{},[82],{"type":47,"value":83},"CRITICAL: Always follow this exact sequence:",{"type":42,"tag":85,"props":86,"children":87},"ol",{},[88,99,109,119,129,139,149],{"type":42,"tag":89,"props":90,"children":91},"li",{},[92,97],{"type":42,"tag":63,"props":93,"children":94},{},[95],{"type":47,"value":96},"Fetch Confluence Page",{"type":47,"value":98}," → Get the specification content",{"type":42,"tag":89,"props":100,"children":101},{},[102,107],{"type":42,"tag":63,"props":103,"children":104},{},[105],{"type":47,"value":106},"Ask for Project Key",{"type":47,"value":108}," → Identify target Jira project",{"type":42,"tag":89,"props":110,"children":111},{},[112,117],{"type":42,"tag":63,"props":113,"children":114},{},[115],{"type":47,"value":116},"Analyze Specification",{"type":47,"value":118}," → Break down into logical tasks (internally, don't create yet)",{"type":42,"tag":89,"props":120,"children":121},{},[122,127],{"type":42,"tag":63,"props":123,"children":124},{},[125],{"type":47,"value":126},"Present Breakdown",{"type":47,"value":128}," → Show user the planned Epic and tickets",{"type":42,"tag":89,"props":130,"children":131},{},[132,137],{"type":42,"tag":63,"props":133,"children":134},{},[135],{"type":47,"value":136},"Create Epic FIRST",{"type":47,"value":138}," → Establish parent Epic and capture its key",{"type":42,"tag":89,"props":140,"children":141},{},[142,147],{"type":42,"tag":63,"props":143,"children":144},{},[145],{"type":47,"value":146},"Create Child Tickets",{"type":47,"value":148}," → Generate tickets linked to the Epic",{"type":42,"tag":89,"props":150,"children":151},{},[152,157],{"type":42,"tag":63,"props":153,"children":154},{},[155],{"type":47,"value":156},"Provide Summary",{"type":47,"value":158}," → Present all created items with links",{"type":42,"tag":57,"props":160,"children":161},{},[162,167],{"type":42,"tag":63,"props":163,"children":164},{},[165],{"type":47,"value":166},"Why Epic must be created first:",{"type":47,"value":168}," Child tickets need the Epic key to link properly during creation. Creating tickets first will result in orphaned tickets.",{"type":42,"tag":170,"props":171,"children":172},"hr",{},[],{"type":42,"tag":50,"props":174,"children":176},{"id":175},"step-1-fetch-confluence-page",[177],{"type":47,"value":178},"Step 1: Fetch Confluence Page",{"type":42,"tag":57,"props":180,"children":181},{},[182],{"type":47,"value":183},"When triggered, obtain the Confluence page content:",{"type":42,"tag":185,"props":186,"children":188},"h3",{"id":187},"if-user-provides-a-confluence-url",[189],{"type":47,"value":190},"If user provides a Confluence URL:",{"type":42,"tag":57,"props":192,"children":193},{},[194],{"type":47,"value":195},"Extract the cloud ID and page ID from the URL pattern:",{"type":42,"tag":197,"props":198,"children":199},"ul",{},[200,212,231],{"type":42,"tag":89,"props":201,"children":202},{},[203,205],{"type":47,"value":204},"Standard format: ",{"type":42,"tag":206,"props":207,"children":209},"code",{"className":208},[],[210],{"type":47,"value":211},"https:\u002F\u002F[site].atlassian.net\u002Fwiki\u002Fspaces\u002F[SPACE]\u002Fpages\u002F[PAGE_ID]\u002F[title]",{"type":42,"tag":89,"props":213,"children":214},{},[215,217,223,225],{"type":47,"value":216},"The cloud ID can be extracted from ",{"type":42,"tag":206,"props":218,"children":220},{"className":219},[],[221],{"type":47,"value":222},"[site].atlassian.net",{"type":47,"value":224}," or by calling ",{"type":42,"tag":206,"props":226,"children":228},{"className":227},[],[229],{"type":47,"value":230},"getAccessibleAtlassianResources",{"type":42,"tag":89,"props":232,"children":233},{},[234],{"type":47,"value":235},"The page ID is the numeric value in the URL path",{"type":42,"tag":185,"props":237,"children":239},{"id":238},"if-user-provides-only-a-page-title-or-description",[240],{"type":47,"value":241},"If user provides only a page title or description:",{"type":42,"tag":57,"props":243,"children":244},{},[245,247,253],{"type":47,"value":246},"Use the ",{"type":42,"tag":206,"props":248,"children":250},{"className":249},[],[251],{"type":47,"value":252},"search",{"type":47,"value":254}," tool to find the page:",{"type":42,"tag":256,"props":257,"children":261},"pre",{"className":258,"code":260,"language":47},[259],"language-text","search(\n  cloudId=\"...\",\n  query=\"type=page AND title~'[search terms]'\"\n)\n",[262],{"type":42,"tag":206,"props":263,"children":265},{"__ignoreMap":264},"",[266],{"type":47,"value":260},{"type":42,"tag":57,"props":268,"children":269},{},[270],{"type":47,"value":271},"If multiple pages match, ask the user to clarify which one to use.",{"type":42,"tag":185,"props":273,"children":275},{"id":274},"fetch-the-page",[276],{"type":47,"value":277},"Fetch the page:",{"type":42,"tag":57,"props":279,"children":280},{},[281,283,289],{"type":47,"value":282},"Call ",{"type":42,"tag":206,"props":284,"children":286},{"className":285},[],[287],{"type":47,"value":288},"getConfluencePage",{"type":47,"value":290}," with the cloudId and pageId:",{"type":42,"tag":256,"props":292,"children":295},{"className":293,"code":294,"language":47},[259],"getConfluencePage(\n  cloudId=\"...\",\n  pageId=\"123456\",\n  contentFormat=\"markdown\"\n)\n",[296],{"type":42,"tag":206,"props":297,"children":298},{"__ignoreMap":264},[299],{"type":47,"value":294},{"type":42,"tag":57,"props":301,"children":302},{},[303],{"type":47,"value":304},"This returns the page content in Markdown format, which you'll analyze in Step 3.",{"type":42,"tag":170,"props":306,"children":307},{},[],{"type":42,"tag":50,"props":309,"children":311},{"id":310},"step-2-ask-for-project-key",[312],{"type":47,"value":313},"Step 2: Ask for Project Key",{"type":42,"tag":57,"props":315,"children":316},{},[317,322],{"type":42,"tag":63,"props":318,"children":319},{},[320],{"type":47,"value":321},"Before analyzing the spec",{"type":47,"value":323},", determine the target Jira project:",{"type":42,"tag":185,"props":325,"children":327},{"id":326},"ask-the-user",[328],{"type":47,"value":329},"Ask the user:",{"type":42,"tag":57,"props":331,"children":332},{},[333],{"type":47,"value":334},"\"Which Jira project should I create these tickets in? Please provide the project key (e.g., PROJ, ENG, PRODUCT).\"",{"type":42,"tag":185,"props":336,"children":338},{"id":337},"if-user-is-unsure",[339],{"type":47,"value":340},"If user is unsure:",{"type":42,"tag":57,"props":342,"children":343},{},[344,345,351],{"type":47,"value":282},{"type":42,"tag":206,"props":346,"children":348},{"className":347},[],[349],{"type":47,"value":350},"getVisibleJiraProjects",{"type":47,"value":352}," to show available projects:",{"type":42,"tag":256,"props":354,"children":357},{"className":355,"code":356,"language":47},[259],"getVisibleJiraProjects(\n  cloudId=\"...\",\n  action=\"create\"\n)\n",[358],{"type":42,"tag":206,"props":359,"children":360},{"__ignoreMap":264},[361],{"type":47,"value":356},{"type":42,"tag":57,"props":363,"children":364},{},[365],{"type":47,"value":366},"Present the list: \"I found these projects you can create issues in: PROJ (Project Alpha), ENG (Engineering), PRODUCT (Product Team).\"",{"type":42,"tag":185,"props":368,"children":370},{"id":369},"once-you-have-the-project-key",[371],{"type":47,"value":372},"Once you have the project key:",{"type":42,"tag":57,"props":374,"children":375},{},[376,377,383],{"type":47,"value":282},{"type":42,"tag":206,"props":378,"children":380},{"className":379},[],[381],{"type":47,"value":382},"getJiraProjectIssueTypesMetadata",{"type":47,"value":384}," to understand what issue types are available:",{"type":42,"tag":256,"props":386,"children":389},{"className":387,"code":388,"language":47},[259],"getJiraProjectIssueTypesMetadata(\n  cloudId=\"...\",\n  projectIdOrKey=\"PROJ\"\n)\n",[390],{"type":42,"tag":206,"props":391,"children":392},{"__ignoreMap":264},[393],{"type":47,"value":388},{"type":42,"tag":57,"props":395,"children":396},{},[397],{"type":42,"tag":63,"props":398,"children":399},{},[400],{"type":47,"value":401},"Identify available issue types:",{"type":42,"tag":197,"props":403,"children":404},{},[405,410],{"type":42,"tag":89,"props":406,"children":407},{},[408],{"type":47,"value":409},"Which issue type is \"Epic\" (or similar parent type like \"Initiative\")",{"type":42,"tag":89,"props":411,"children":412},{},[413],{"type":47,"value":414},"What child issue types are available: \"Story\", \"Task\", \"Bug\", \"Sub-task\", etc.",{"type":42,"tag":57,"props":416,"children":417},{},[418],{"type":42,"tag":63,"props":419,"children":420},{},[421],{"type":47,"value":422},"Select appropriate issue types for child tickets:",{"type":42,"tag":57,"props":424,"children":425},{},[426],{"type":47,"value":427},"The skill should intelligently choose issue types based on the specification content:",{"type":42,"tag":57,"props":429,"children":430},{},[431],{"type":42,"tag":63,"props":432,"children":433},{},[434],{"type":47,"value":435},"Use \"Bug\" when the spec describes:",{"type":42,"tag":197,"props":437,"children":438},{},[439,444,449,454,459],{"type":42,"tag":89,"props":440,"children":441},{},[442],{"type":47,"value":443},"Fixing existing problems or defects",{"type":42,"tag":89,"props":445,"children":446},{},[447],{"type":47,"value":448},"Resolving errors or incorrect behavior",{"type":42,"tag":89,"props":450,"children":451},{},[452],{"type":47,"value":453},"Addressing performance issues",{"type":42,"tag":89,"props":455,"children":456},{},[457],{"type":47,"value":458},"Correcting data inconsistencies",{"type":42,"tag":89,"props":460,"children":461},{},[462],{"type":47,"value":463},"Keywords: \"fix\", \"resolve\", \"bug\", \"issue\", \"problem\", \"error\", \"broken\"",{"type":42,"tag":57,"props":465,"children":466},{},[467],{"type":42,"tag":63,"props":468,"children":469},{},[470],{"type":47,"value":471},"Use \"Story\" when the spec describes:",{"type":42,"tag":197,"props":473,"children":474},{},[475,480,485,490,495],{"type":42,"tag":89,"props":476,"children":477},{},[478],{"type":47,"value":479},"New user-facing features or functionality",{"type":42,"tag":89,"props":481,"children":482},{},[483],{"type":47,"value":484},"User experience improvements",{"type":42,"tag":89,"props":486,"children":487},{},[488],{"type":47,"value":489},"Customer-requested capabilities",{"type":42,"tag":89,"props":491,"children":492},{},[493],{"type":47,"value":494},"Product enhancements",{"type":42,"tag":89,"props":496,"children":497},{},[498],{"type":47,"value":499},"Keywords: \"feature\", \"user can\", \"add ability to\", \"new\", \"enable users\"",{"type":42,"tag":57,"props":501,"children":502},{},[503],{"type":42,"tag":63,"props":504,"children":505},{},[506],{"type":47,"value":507},"Use \"Task\" when the spec describes:",{"type":42,"tag":197,"props":509,"children":510},{},[511,516,521,526,531,536],{"type":42,"tag":89,"props":512,"children":513},{},[514],{"type":47,"value":515},"Technical work without direct user impact",{"type":42,"tag":89,"props":517,"children":518},{},[519],{"type":47,"value":520},"Infrastructure or DevOps work",{"type":42,"tag":89,"props":522,"children":523},{},[524],{"type":47,"value":525},"Refactoring or optimization",{"type":42,"tag":89,"props":527,"children":528},{},[529],{"type":47,"value":530},"Documentation or tooling",{"type":42,"tag":89,"props":532,"children":533},{},[534],{"type":47,"value":535},"Configuration or setup",{"type":42,"tag":89,"props":537,"children":538},{},[539],{"type":47,"value":540},"Keywords: \"implement\", \"setup\", \"configure\", \"optimize\", \"refactor\", \"infrastructure\"",{"type":42,"tag":57,"props":542,"children":543},{},[544],{"type":42,"tag":63,"props":545,"children":546},{},[547],{"type":47,"value":548},"Fallback logic:",{"type":42,"tag":85,"props":550,"children":551},{},[552,557,562,567],{"type":42,"tag":89,"props":553,"children":554},{},[555],{"type":47,"value":556},"If \"Story\" is available and content suggests new features → use \"Story\"",{"type":42,"tag":89,"props":558,"children":559},{},[560],{"type":47,"value":561},"If \"Bug\" is available and content suggests fixes → use \"Bug\"",{"type":42,"tag":89,"props":563,"children":564},{},[565],{"type":47,"value":566},"If \"Task\" is available → use \"Task\" for technical work",{"type":42,"tag":89,"props":568,"children":569},{},[570],{"type":47,"value":571},"If none of the above are available → use the first available non-Epic, non-Subtask issue type",{"type":42,"tag":57,"props":573,"children":574},{},[575],{"type":42,"tag":63,"props":576,"children":577},{},[578],{"type":47,"value":579},"Store the selected issue types for use in Step 6:",{"type":42,"tag":197,"props":581,"children":582},{},[583,588,593],{"type":42,"tag":89,"props":584,"children":585},{},[586],{"type":47,"value":587},"Epic issue type name (e.g., \"Epic\")",{"type":42,"tag":89,"props":589,"children":590},{},[591],{"type":47,"value":592},"Default child issue type (e.g., \"Story\" or \"Task\")",{"type":42,"tag":89,"props":594,"children":595},{},[596],{"type":47,"value":597},"Bug issue type name if available (e.g., \"Bug\")",{"type":42,"tag":170,"props":599,"children":600},{},[],{"type":42,"tag":50,"props":602,"children":604},{"id":603},"step-3-analyze-specification",[605],{"type":47,"value":606},"Step 3: Analyze Specification",{"type":42,"tag":57,"props":608,"children":609},{},[610,612,617],{"type":47,"value":611},"Read the Confluence page content and ",{"type":42,"tag":63,"props":613,"children":614},{},[615],{"type":47,"value":616},"internally",{"type":47,"value":618}," decompose it into:",{"type":42,"tag":185,"props":620,"children":622},{"id":621},"epic-level-goal",[623],{"type":47,"value":624},"Epic-Level Goal",{"type":42,"tag":57,"props":626,"children":627},{},[628],{"type":47,"value":629},"What is the overall objective or feature being implemented? This becomes your Epic.",{"type":42,"tag":57,"props":631,"children":632},{},[633],{"type":42,"tag":63,"props":634,"children":635},{},[636],{"type":47,"value":637},"Example Epic summaries:",{"type":42,"tag":197,"props":639,"children":640},{},[641,646,651,656],{"type":42,"tag":89,"props":642,"children":643},{},[644],{"type":47,"value":645},"\"User Authentication System\"",{"type":42,"tag":89,"props":647,"children":648},{},[649],{"type":47,"value":650},"\"Payment Gateway Integration\"",{"type":42,"tag":89,"props":652,"children":653},{},[654],{"type":47,"value":655},"\"Dashboard Performance Optimization\"",{"type":42,"tag":89,"props":657,"children":658},{},[659],{"type":47,"value":660},"\"Mobile App Notifications Feature\"",{"type":42,"tag":185,"props":662,"children":664},{"id":663},"implementation-tasks",[665],{"type":47,"value":666},"Implementation Tasks",{"type":42,"tag":57,"props":668,"children":669},{},[670],{"type":47,"value":671},"Break the work into logical, independently implementable tasks.",{"type":42,"tag":57,"props":673,"children":674},{},[675],{"type":42,"tag":63,"props":676,"children":677},{},[678],{"type":47,"value":679},"Breakdown principles:",{"type":42,"tag":197,"props":681,"children":682},{},[683,693,703,713,723],{"type":42,"tag":89,"props":684,"children":685},{},[686,691],{"type":42,"tag":63,"props":687,"children":688},{},[689],{"type":47,"value":690},"Size:",{"type":47,"value":692}," 3-10 tasks per spec typically (avoid over-granularity)",{"type":42,"tag":89,"props":694,"children":695},{},[696,701],{"type":42,"tag":63,"props":697,"children":698},{},[699],{"type":47,"value":700},"Clarity:",{"type":47,"value":702}," Each task should be specific and actionable",{"type":42,"tag":89,"props":704,"children":705},{},[706,711],{"type":42,"tag":63,"props":707,"children":708},{},[709],{"type":47,"value":710},"Independence:",{"type":47,"value":712}," Tasks can be worked on separately when possible",{"type":42,"tag":89,"props":714,"children":715},{},[716,721],{"type":42,"tag":63,"props":717,"children":718},{},[719],{"type":47,"value":720},"Completeness:",{"type":47,"value":722}," Include backend, frontend, testing, documentation, infrastructure as needed",{"type":42,"tag":89,"props":724,"children":725},{},[726,731],{"type":42,"tag":63,"props":727,"children":728},{},[729],{"type":47,"value":730},"Grouping:",{"type":47,"value":732}," Related functionality stays in the same ticket",{"type":42,"tag":57,"props":734,"children":735},{},[736],{"type":42,"tag":63,"props":737,"children":738},{},[739],{"type":47,"value":740},"Consider these dimensions:",{"type":42,"tag":197,"props":742,"children":743},{},[744,749,754,759],{"type":42,"tag":89,"props":745,"children":746},{},[747],{"type":47,"value":748},"Technical layers: Backend API, Frontend UI, Database, Infrastructure",{"type":42,"tag":89,"props":750,"children":751},{},[752],{"type":47,"value":753},"Work types: Implementation, Testing, Documentation, Deployment",{"type":42,"tag":89,"props":755,"children":756},{},[757],{"type":47,"value":758},"Features: Break complex features into sub-features",{"type":42,"tag":89,"props":760,"children":761},{},[762],{"type":47,"value":763},"Dependencies: Identify prerequisite work",{"type":42,"tag":57,"props":765,"children":766},{},[767],{"type":42,"tag":63,"props":768,"children":769},{},[770],{"type":47,"value":771},"Common task patterns:",{"type":42,"tag":197,"props":773,"children":774},{},[775,788,800,811,830,840],{"type":42,"tag":89,"props":776,"children":777},{},[778,780,786],{"type":47,"value":779},"\"Design ",{"type":42,"tag":781,"props":782,"children":783},"span",{},[784],{"type":47,"value":785},"component",{"type":47,"value":787}," database schema\"",{"type":42,"tag":89,"props":789,"children":790},{},[791,793,798],{"type":47,"value":792},"\"Implement ",{"type":42,"tag":781,"props":794,"children":795},{},[796],{"type":47,"value":797},"feature",{"type":47,"value":799}," API endpoints\"",{"type":42,"tag":89,"props":801,"children":802},{},[803,805,809],{"type":47,"value":804},"\"Build ",{"type":42,"tag":781,"props":806,"children":807},{},[808],{"type":47,"value":785},{"type":47,"value":810}," UI components\"",{"type":42,"tag":89,"props":812,"children":813},{},[814,816,821,823,828],{"type":47,"value":815},"\"Add ",{"type":42,"tag":781,"props":817,"children":818},{},[819],{"type":47,"value":820},"integration",{"type":47,"value":822}," to existing ",{"type":42,"tag":781,"props":824,"children":825},{},[826],{"type":47,"value":827},"system",{"type":47,"value":829},"\"",{"type":42,"tag":89,"props":831,"children":832},{},[833,835,839],{"type":47,"value":834},"\"Write tests for ",{"type":42,"tag":781,"props":836,"children":837},{},[838],{"type":47,"value":797},{"type":47,"value":829},{"type":42,"tag":89,"props":841,"children":842},{},[843,845,849],{"type":47,"value":844},"\"Update documentation for ",{"type":42,"tag":781,"props":846,"children":847},{},[848],{"type":47,"value":797},{"type":47,"value":829},{"type":42,"tag":57,"props":851,"children":852},{},[853],{"type":42,"tag":63,"props":854,"children":855},{},[856],{"type":47,"value":857},"Use action verbs:",{"type":42,"tag":197,"props":859,"children":860},{},[861],{"type":42,"tag":89,"props":862,"children":863},{},[864],{"type":47,"value":865},"Implement, Create, Build, Add, Design, Integrate, Update, Fix, Optimize, Configure, Deploy, Test, Document",{"type":42,"tag":170,"props":867,"children":868},{},[],{"type":42,"tag":50,"props":870,"children":872},{"id":871},"step-4-present-breakdown-to-user",[873],{"type":47,"value":874},"Step 4: Present Breakdown to User",{"type":42,"tag":57,"props":876,"children":877},{},[878,883],{"type":42,"tag":63,"props":879,"children":880},{},[881],{"type":47,"value":882},"Before creating anything",{"type":47,"value":884},", show the user your planned breakdown:",{"type":42,"tag":57,"props":886,"children":887},{},[888],{"type":42,"tag":63,"props":889,"children":890},{},[891],{"type":47,"value":892},"Format:",{"type":42,"tag":256,"props":894,"children":897},{"className":895,"code":896,"language":47},[259],"I've analyzed the spec and here's the backlog I'll create:\n\n**Epic:** [Epic Summary]\n[Brief description of epic scope]\n\n**Implementation Tickets (7):**\n1. [Story] [Task 1 Summary]\n2. [Task] [Task 2 Summary]  \n3. [Story] [Task 3 Summary]\n4. [Bug] [Task 4 Summary]\n5. [Task] [Task 5 Summary]\n6. [Story] [Task 6 Summary]\n7. [Task] [Task 7 Summary]\n\nShall I create these tickets in [PROJECT KEY]?\n",[898],{"type":42,"tag":206,"props":899,"children":900},{"__ignoreMap":264},[901],{"type":47,"value":896},{"type":42,"tag":57,"props":903,"children":904},{},[905],{"type":42,"tag":63,"props":906,"children":907},{},[908],{"type":47,"value":909},"The issue type labels show what type each ticket will be created as:",{"type":42,"tag":197,"props":911,"children":912},{},[913,923,933],{"type":42,"tag":89,"props":914,"children":915},{},[916,921],{"type":42,"tag":781,"props":917,"children":918},{},[919],{"type":47,"value":920},"Story",{"type":47,"value":922}," - New user-facing feature",{"type":42,"tag":89,"props":924,"children":925},{},[926,931],{"type":42,"tag":781,"props":927,"children":928},{},[929],{"type":47,"value":930},"Task",{"type":47,"value":932}," - Technical implementation work",{"type":42,"tag":89,"props":934,"children":935},{},[936,941],{"type":42,"tag":781,"props":937,"children":938},{},[939],{"type":47,"value":940},"Bug",{"type":47,"value":942}," - Fix or resolve an issue",{"type":42,"tag":57,"props":944,"children":945},{},[946,951],{"type":42,"tag":63,"props":947,"children":948},{},[949],{"type":47,"value":950},"Wait for user confirmation",{"type":47,"value":952}," before proceeding. This allows them to:",{"type":42,"tag":197,"props":954,"children":955},{},[956,961,966],{"type":42,"tag":89,"props":957,"children":958},{},[959],{"type":47,"value":960},"Request changes to the breakdown",{"type":42,"tag":89,"props":962,"children":963},{},[964],{"type":47,"value":965},"Confirm the scope is correct",{"type":42,"tag":89,"props":967,"children":968},{},[969],{"type":47,"value":970},"Adjust the number or focus of tickets",{"type":42,"tag":57,"props":972,"children":973},{},[974],{"type":47,"value":975},"If user requests changes, adjust the breakdown and re-present.",{"type":42,"tag":170,"props":977,"children":978},{},[],{"type":42,"tag":50,"props":980,"children":982},{"id":981},"step-5-create-epic-first",[983],{"type":47,"value":984},"Step 5: Create Epic FIRST",{"type":42,"tag":57,"props":986,"children":987},{},[988,993],{"type":42,"tag":63,"props":989,"children":990},{},[991],{"type":47,"value":992},"CRITICAL:",{"type":47,"value":994}," The Epic must be created before any child tickets.",{"type":42,"tag":185,"props":996,"children":998},{"id":997},"create-the-epic",[999],{"type":47,"value":1000},"Create the Epic:",{"type":42,"tag":57,"props":1002,"children":1003},{},[1004,1005,1011],{"type":47,"value":282},{"type":42,"tag":206,"props":1006,"children":1008},{"className":1007},[],[1009],{"type":47,"value":1010},"createJiraIssue",{"type":47,"value":1012}," with:",{"type":42,"tag":256,"props":1014,"children":1017},{"className":1015,"code":1016,"language":47},[259],"createJiraIssue(\n  cloudId=\"...\",\n  projectKey=\"PROJ\",\n  issueTypeName=\"Epic\",\n  summary=\"[Epic Summary from Step 3]\",\n  description=\"[Epic Description - see below]\"\n)\n",[1018],{"type":42,"tag":206,"props":1019,"children":1020},{"__ignoreMap":264},[1021],{"type":47,"value":1016},{"type":42,"tag":185,"props":1023,"children":1025},{"id":1024},"epic-description-structure",[1026],{"type":47,"value":1027},"Epic Description Structure:",{"type":42,"tag":256,"props":1029,"children":1033},{"className":1030,"code":1031,"language":1032,"meta":264,"style":264},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","## Overview\n[1-2 sentence summary of what this epic delivers]\n\n## Source\nConfluence Spec: [Link to Confluence page]\n\n## Objectives\n- [Key objective 1]\n- [Key objective 2]\n- [Key objective 3]\n\n## Scope\n[Brief description of what's included and what's not]\n\n## Success Criteria\n- [Measurable criterion 1]\n- [Measurable criterion 2]\n- [Measurable criterion 3]\n\n## Technical Notes\n[Any important technical context from the spec]\n","markdown",[1034],{"type":42,"tag":206,"props":1035,"children":1036},{"__ignoreMap":264},[1037,1054,1064,1074,1087,1096,1104,1117,1131,1144,1157,1165,1178,1187,1195,1208,1221,1234,1247,1255,1268],{"type":42,"tag":781,"props":1038,"children":1041},{"class":1039,"line":1040},"line",1,[1042,1048],{"type":42,"tag":781,"props":1043,"children":1045},{"style":1044},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1046],{"type":47,"value":1047},"## ",{"type":42,"tag":781,"props":1049,"children":1051},{"style":1050},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1052],{"type":47,"value":1053},"Overview\n",{"type":42,"tag":781,"props":1055,"children":1057},{"class":1039,"line":1056},2,[1058],{"type":42,"tag":781,"props":1059,"children":1061},{"style":1060},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1062],{"type":47,"value":1063},"[1-2 sentence summary of what this epic delivers]\n",{"type":42,"tag":781,"props":1065,"children":1067},{"class":1039,"line":1066},3,[1068],{"type":42,"tag":781,"props":1069,"children":1071},{"emptyLinePlaceholder":1070},true,[1072],{"type":47,"value":1073},"\n",{"type":42,"tag":781,"props":1075,"children":1077},{"class":1039,"line":1076},4,[1078,1082],{"type":42,"tag":781,"props":1079,"children":1080},{"style":1044},[1081],{"type":47,"value":1047},{"type":42,"tag":781,"props":1083,"children":1084},{"style":1050},[1085],{"type":47,"value":1086},"Source\n",{"type":42,"tag":781,"props":1088,"children":1090},{"class":1039,"line":1089},5,[1091],{"type":42,"tag":781,"props":1092,"children":1093},{"style":1060},[1094],{"type":47,"value":1095},"Confluence Spec: [Link to Confluence page]\n",{"type":42,"tag":781,"props":1097,"children":1099},{"class":1039,"line":1098},6,[1100],{"type":42,"tag":781,"props":1101,"children":1102},{"emptyLinePlaceholder":1070},[1103],{"type":47,"value":1073},{"type":42,"tag":781,"props":1105,"children":1107},{"class":1039,"line":1106},7,[1108,1112],{"type":42,"tag":781,"props":1109,"children":1110},{"style":1044},[1111],{"type":47,"value":1047},{"type":42,"tag":781,"props":1113,"children":1114},{"style":1050},[1115],{"type":47,"value":1116},"Objectives\n",{"type":42,"tag":781,"props":1118,"children":1120},{"class":1039,"line":1119},8,[1121,1126],{"type":42,"tag":781,"props":1122,"children":1123},{"style":1044},[1124],{"type":47,"value":1125},"-",{"type":42,"tag":781,"props":1127,"children":1128},{"style":1060},[1129],{"type":47,"value":1130}," [Key objective 1]\n",{"type":42,"tag":781,"props":1132,"children":1134},{"class":1039,"line":1133},9,[1135,1139],{"type":42,"tag":781,"props":1136,"children":1137},{"style":1044},[1138],{"type":47,"value":1125},{"type":42,"tag":781,"props":1140,"children":1141},{"style":1060},[1142],{"type":47,"value":1143}," [Key objective 2]\n",{"type":42,"tag":781,"props":1145,"children":1147},{"class":1039,"line":1146},10,[1148,1152],{"type":42,"tag":781,"props":1149,"children":1150},{"style":1044},[1151],{"type":47,"value":1125},{"type":42,"tag":781,"props":1153,"children":1154},{"style":1060},[1155],{"type":47,"value":1156}," [Key objective 3]\n",{"type":42,"tag":781,"props":1158,"children":1160},{"class":1039,"line":1159},11,[1161],{"type":42,"tag":781,"props":1162,"children":1163},{"emptyLinePlaceholder":1070},[1164],{"type":47,"value":1073},{"type":42,"tag":781,"props":1166,"children":1168},{"class":1039,"line":1167},12,[1169,1173],{"type":42,"tag":781,"props":1170,"children":1171},{"style":1044},[1172],{"type":47,"value":1047},{"type":42,"tag":781,"props":1174,"children":1175},{"style":1050},[1176],{"type":47,"value":1177},"Scope\n",{"type":42,"tag":781,"props":1179,"children":1181},{"class":1039,"line":1180},13,[1182],{"type":42,"tag":781,"props":1183,"children":1184},{"style":1060},[1185],{"type":47,"value":1186},"[Brief description of what's included and what's not]\n",{"type":42,"tag":781,"props":1188,"children":1190},{"class":1039,"line":1189},14,[1191],{"type":42,"tag":781,"props":1192,"children":1193},{"emptyLinePlaceholder":1070},[1194],{"type":47,"value":1073},{"type":42,"tag":781,"props":1196,"children":1198},{"class":1039,"line":1197},15,[1199,1203],{"type":42,"tag":781,"props":1200,"children":1201},{"style":1044},[1202],{"type":47,"value":1047},{"type":42,"tag":781,"props":1204,"children":1205},{"style":1050},[1206],{"type":47,"value":1207},"Success Criteria\n",{"type":42,"tag":781,"props":1209,"children":1211},{"class":1039,"line":1210},16,[1212,1216],{"type":42,"tag":781,"props":1213,"children":1214},{"style":1044},[1215],{"type":47,"value":1125},{"type":42,"tag":781,"props":1217,"children":1218},{"style":1060},[1219],{"type":47,"value":1220}," [Measurable criterion 1]\n",{"type":42,"tag":781,"props":1222,"children":1224},{"class":1039,"line":1223},17,[1225,1229],{"type":42,"tag":781,"props":1226,"children":1227},{"style":1044},[1228],{"type":47,"value":1125},{"type":42,"tag":781,"props":1230,"children":1231},{"style":1060},[1232],{"type":47,"value":1233}," [Measurable criterion 2]\n",{"type":42,"tag":781,"props":1235,"children":1237},{"class":1039,"line":1236},18,[1238,1242],{"type":42,"tag":781,"props":1239,"children":1240},{"style":1044},[1241],{"type":47,"value":1125},{"type":42,"tag":781,"props":1243,"children":1244},{"style":1060},[1245],{"type":47,"value":1246}," [Measurable criterion 3]\n",{"type":42,"tag":781,"props":1248,"children":1250},{"class":1039,"line":1249},19,[1251],{"type":42,"tag":781,"props":1252,"children":1253},{"emptyLinePlaceholder":1070},[1254],{"type":47,"value":1073},{"type":42,"tag":781,"props":1256,"children":1258},{"class":1039,"line":1257},20,[1259,1263],{"type":42,"tag":781,"props":1260,"children":1261},{"style":1044},[1262],{"type":47,"value":1047},{"type":42,"tag":781,"props":1264,"children":1265},{"style":1050},[1266],{"type":47,"value":1267},"Technical Notes\n",{"type":42,"tag":781,"props":1269,"children":1271},{"class":1039,"line":1270},21,[1272],{"type":42,"tag":781,"props":1273,"children":1274},{"style":1060},[1275],{"type":47,"value":1276},"[Any important technical context from the spec]\n",{"type":42,"tag":185,"props":1278,"children":1280},{"id":1279},"capture-the-epic-key",[1281],{"type":47,"value":1282},"Capture the Epic Key:",{"type":42,"tag":57,"props":1284,"children":1285},{},[1286,1288,1293],{"type":47,"value":1287},"The response will include the Epic's key (e.g., \"PROJ-123\"). ",{"type":42,"tag":63,"props":1289,"children":1290},{},[1291],{"type":47,"value":1292},"Save this key",{"type":47,"value":1294},"—you'll need it for every child ticket.",{"type":42,"tag":57,"props":1296,"children":1297},{},[1298],{"type":42,"tag":63,"props":1299,"children":1300},{},[1301],{"type":47,"value":1302},"Example response:",{"type":42,"tag":256,"props":1304,"children":1308},{"className":1305,"code":1306,"language":1307,"meta":264,"style":264},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"key\": \"PROJ-123\",\n  \"id\": \"10001\",\n  \"self\": \"https:\u002F\u002Fyoursite.atlassian.net\u002Frest\u002Fapi\u002F3\u002Fissue\u002F10001\"\n}\n","json",[1309],{"type":42,"tag":206,"props":1310,"children":1311},{"__ignoreMap":264},[1312,1320,1363,1400,1434],{"type":42,"tag":781,"props":1313,"children":1314},{"class":1039,"line":1040},[1315],{"type":42,"tag":781,"props":1316,"children":1317},{"style":1044},[1318],{"type":47,"value":1319},"{\n",{"type":42,"tag":781,"props":1321,"children":1322},{"class":1039,"line":1056},[1323,1328,1334,1338,1343,1348,1354,1358],{"type":42,"tag":781,"props":1324,"children":1325},{"style":1044},[1326],{"type":47,"value":1327},"  \"",{"type":42,"tag":781,"props":1329,"children":1331},{"style":1330},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1332],{"type":47,"value":1333},"key",{"type":42,"tag":781,"props":1335,"children":1336},{"style":1044},[1337],{"type":47,"value":829},{"type":42,"tag":781,"props":1339,"children":1340},{"style":1044},[1341],{"type":47,"value":1342},":",{"type":42,"tag":781,"props":1344,"children":1345},{"style":1044},[1346],{"type":47,"value":1347}," \"",{"type":42,"tag":781,"props":1349,"children":1351},{"style":1350},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1352],{"type":47,"value":1353},"PROJ-123",{"type":42,"tag":781,"props":1355,"children":1356},{"style":1044},[1357],{"type":47,"value":829},{"type":42,"tag":781,"props":1359,"children":1360},{"style":1044},[1361],{"type":47,"value":1362},",\n",{"type":42,"tag":781,"props":1364,"children":1365},{"class":1039,"line":1066},[1366,1370,1375,1379,1383,1387,1392,1396],{"type":42,"tag":781,"props":1367,"children":1368},{"style":1044},[1369],{"type":47,"value":1327},{"type":42,"tag":781,"props":1371,"children":1372},{"style":1330},[1373],{"type":47,"value":1374},"id",{"type":42,"tag":781,"props":1376,"children":1377},{"style":1044},[1378],{"type":47,"value":829},{"type":42,"tag":781,"props":1380,"children":1381},{"style":1044},[1382],{"type":47,"value":1342},{"type":42,"tag":781,"props":1384,"children":1385},{"style":1044},[1386],{"type":47,"value":1347},{"type":42,"tag":781,"props":1388,"children":1389},{"style":1350},[1390],{"type":47,"value":1391},"10001",{"type":42,"tag":781,"props":1393,"children":1394},{"style":1044},[1395],{"type":47,"value":829},{"type":42,"tag":781,"props":1397,"children":1398},{"style":1044},[1399],{"type":47,"value":1362},{"type":42,"tag":781,"props":1401,"children":1402},{"class":1039,"line":1076},[1403,1407,1412,1416,1420,1424,1429],{"type":42,"tag":781,"props":1404,"children":1405},{"style":1044},[1406],{"type":47,"value":1327},{"type":42,"tag":781,"props":1408,"children":1409},{"style":1330},[1410],{"type":47,"value":1411},"self",{"type":42,"tag":781,"props":1413,"children":1414},{"style":1044},[1415],{"type":47,"value":829},{"type":42,"tag":781,"props":1417,"children":1418},{"style":1044},[1419],{"type":47,"value":1342},{"type":42,"tag":781,"props":1421,"children":1422},{"style":1044},[1423],{"type":47,"value":1347},{"type":42,"tag":781,"props":1425,"children":1426},{"style":1350},[1427],{"type":47,"value":1428},"https:\u002F\u002Fyoursite.atlassian.net\u002Frest\u002Fapi\u002F3\u002Fissue\u002F10001",{"type":42,"tag":781,"props":1430,"children":1431},{"style":1044},[1432],{"type":47,"value":1433},"\"\n",{"type":42,"tag":781,"props":1435,"children":1436},{"class":1039,"line":1089},[1437],{"type":42,"tag":781,"props":1438,"children":1439},{"style":1044},[1440],{"type":47,"value":1441},"}\n",{"type":42,"tag":57,"props":1443,"children":1444},{},[1445,1450],{"type":42,"tag":63,"props":1446,"children":1447},{},[1448],{"type":47,"value":1449},"Confirm Epic creation to user:",{"type":47,"value":1451},"\n\"✅ Created Epic: PROJ-123 - User Authentication System\"",{"type":42,"tag":170,"props":1453,"children":1454},{},[],{"type":42,"tag":50,"props":1456,"children":1458},{"id":1457},"step-6-create-child-tickets",[1459],{"type":47,"value":1460},"Step 6: Create Child Tickets",{"type":42,"tag":57,"props":1462,"children":1463},{},[1464],{"type":47,"value":1465},"Now create each implementation task as a child ticket linked to the Epic.",{"type":42,"tag":185,"props":1467,"children":1469},{"id":1468},"for-each-task",[1470],{"type":47,"value":1471},"For each task:",{"type":42,"tag":57,"props":1473,"children":1474},{},[1475],{"type":42,"tag":63,"props":1476,"children":1477},{},[1478],{"type":47,"value":1479},"Determine the appropriate issue type for this specific task:",{"type":42,"tag":197,"props":1481,"children":1482},{},[1483,1488,1493,1498],{"type":42,"tag":89,"props":1484,"children":1485},{},[1486],{"type":47,"value":1487},"If the task involves fixing\u002Fresolving an issue → use \"Bug\" (if available)",{"type":42,"tag":89,"props":1489,"children":1490},{},[1491],{"type":47,"value":1492},"If the task involves new user-facing features → use \"Story\" (if available)",{"type":42,"tag":89,"props":1494,"children":1495},{},[1496],{"type":47,"value":1497},"If the task involves technical\u002Finfrastructure work → use \"Task\" (if available)",{"type":42,"tag":89,"props":1499,"children":1500},{},[1501],{"type":47,"value":1502},"Otherwise → use the default child issue type from Step 2",{"type":42,"tag":57,"props":1504,"children":1505},{},[1506,1507,1512],{"type":47,"value":282},{"type":42,"tag":206,"props":1508,"children":1510},{"className":1509},[],[1511],{"type":47,"value":1010},{"type":47,"value":1012},{"type":42,"tag":256,"props":1514,"children":1517},{"className":1515,"code":1516,"language":47},[259],"createJiraIssue(\n  cloudId=\"...\",\n  projectKey=\"PROJ\",\n  issueTypeName=\"[Story\u002FTask\u002FBug based on task content]\",\n  summary=\"[Task Summary]\",\n  description=\"[Task Description - see below]\",\n  parent=\"PROJ-123\"  # The Epic key from Step 5\n)\n",[1518],{"type":42,"tag":206,"props":1519,"children":1520},{"__ignoreMap":264},[1521],{"type":47,"value":1516},{"type":42,"tag":57,"props":1523,"children":1524},{},[1525],{"type":42,"tag":63,"props":1526,"children":1527},{},[1528],{"type":47,"value":1529},"Example issue type selection:",{"type":42,"tag":197,"props":1531,"children":1532},{},[1533,1538,1543,1548],{"type":42,"tag":89,"props":1534,"children":1535},{},[1536],{"type":47,"value":1537},"\"Fix authentication timeout bug\" → Use \"Bug\"",{"type":42,"tag":89,"props":1539,"children":1540},{},[1541],{"type":47,"value":1542},"\"Build user dashboard UI\" → Use \"Story\"",{"type":42,"tag":89,"props":1544,"children":1545},{},[1546],{"type":47,"value":1547},"\"Configure CI\u002FCD pipeline\" → Use \"Task\"",{"type":42,"tag":89,"props":1549,"children":1550},{},[1551],{"type":47,"value":1552},"\"Implement password reset API\" → Use \"Story\" (new user feature)",{"type":42,"tag":185,"props":1554,"children":1556},{"id":1555},"task-summary-format",[1557],{"type":47,"value":1558},"Task Summary Format:",{"type":42,"tag":57,"props":1560,"children":1561},{},[1562],{"type":47,"value":1563},"Use action verbs and be specific:",{"type":42,"tag":197,"props":1565,"children":1566},{},[1567,1572,1577,1582,1587],{"type":42,"tag":89,"props":1568,"children":1569},{},[1570],{"type":47,"value":1571},"✅ \"Implement user registration API endpoint\"",{"type":42,"tag":89,"props":1573,"children":1574},{},[1575],{"type":47,"value":1576},"✅ \"Design authentication database schema\"",{"type":42,"tag":89,"props":1578,"children":1579},{},[1580],{"type":47,"value":1581},"✅ \"Build login form UI components\"",{"type":42,"tag":89,"props":1583,"children":1584},{},[1585],{"type":47,"value":1586},"❌ \"Do backend work\" (too vague)",{"type":42,"tag":89,"props":1588,"children":1589},{},[1590],{"type":47,"value":1591},"❌ \"Frontend\" (not actionable)",{"type":42,"tag":185,"props":1593,"children":1595},{"id":1594},"task-description-structure",[1596],{"type":47,"value":1597},"Task Description Structure:",{"type":42,"tag":256,"props":1599,"children":1601},{"className":1030,"code":1600,"language":1032,"meta":264,"style":264},"## Context\n[Brief context for this task from the Confluence spec]\n\n## Requirements\n- [Requirement 1]\n- [Requirement 2]\n- [Requirement 3]\n\n## Technical Details\n[Specific technical information relevant to this task]\n- Technologies: [e.g., Node.js, React, PostgreSQL]\n- Components: [e.g., API routes, database tables, UI components]\n- Dependencies: [e.g., requires PROJ-124 to be completed first]\n\n## Acceptance Criteria\n- [ ] [Testable criterion 1]\n- [ ] [Testable criterion 2]\n- [ ] [Testable criterion 3]\n\n## Related\n- Confluence Spec: [Link to relevant section if possible]\n- Epic: PROJ-123\n",[1602],{"type":42,"tag":206,"props":1603,"children":1604},{"__ignoreMap":264},[1605,1617,1625,1632,1644,1656,1668,1680,1687,1699,1707,1719,1731,1743,1750,1762,1774,1786,1798,1805,1817,1829],{"type":42,"tag":781,"props":1606,"children":1607},{"class":1039,"line":1040},[1608,1612],{"type":42,"tag":781,"props":1609,"children":1610},{"style":1044},[1611],{"type":47,"value":1047},{"type":42,"tag":781,"props":1613,"children":1614},{"style":1050},[1615],{"type":47,"value":1616},"Context\n",{"type":42,"tag":781,"props":1618,"children":1619},{"class":1039,"line":1056},[1620],{"type":42,"tag":781,"props":1621,"children":1622},{"style":1060},[1623],{"type":47,"value":1624},"[Brief context for this task from the Confluence spec]\n",{"type":42,"tag":781,"props":1626,"children":1627},{"class":1039,"line":1066},[1628],{"type":42,"tag":781,"props":1629,"children":1630},{"emptyLinePlaceholder":1070},[1631],{"type":47,"value":1073},{"type":42,"tag":781,"props":1633,"children":1634},{"class":1039,"line":1076},[1635,1639],{"type":42,"tag":781,"props":1636,"children":1637},{"style":1044},[1638],{"type":47,"value":1047},{"type":42,"tag":781,"props":1640,"children":1641},{"style":1050},[1642],{"type":47,"value":1643},"Requirements\n",{"type":42,"tag":781,"props":1645,"children":1646},{"class":1039,"line":1089},[1647,1651],{"type":42,"tag":781,"props":1648,"children":1649},{"style":1044},[1650],{"type":47,"value":1125},{"type":42,"tag":781,"props":1652,"children":1653},{"style":1060},[1654],{"type":47,"value":1655}," [Requirement 1]\n",{"type":42,"tag":781,"props":1657,"children":1658},{"class":1039,"line":1098},[1659,1663],{"type":42,"tag":781,"props":1660,"children":1661},{"style":1044},[1662],{"type":47,"value":1125},{"type":42,"tag":781,"props":1664,"children":1665},{"style":1060},[1666],{"type":47,"value":1667}," [Requirement 2]\n",{"type":42,"tag":781,"props":1669,"children":1670},{"class":1039,"line":1106},[1671,1675],{"type":42,"tag":781,"props":1672,"children":1673},{"style":1044},[1674],{"type":47,"value":1125},{"type":42,"tag":781,"props":1676,"children":1677},{"style":1060},[1678],{"type":47,"value":1679}," [Requirement 3]\n",{"type":42,"tag":781,"props":1681,"children":1682},{"class":1039,"line":1119},[1683],{"type":42,"tag":781,"props":1684,"children":1685},{"emptyLinePlaceholder":1070},[1686],{"type":47,"value":1073},{"type":42,"tag":781,"props":1688,"children":1689},{"class":1039,"line":1133},[1690,1694],{"type":42,"tag":781,"props":1691,"children":1692},{"style":1044},[1693],{"type":47,"value":1047},{"type":42,"tag":781,"props":1695,"children":1696},{"style":1050},[1697],{"type":47,"value":1698},"Technical Details\n",{"type":42,"tag":781,"props":1700,"children":1701},{"class":1039,"line":1146},[1702],{"type":42,"tag":781,"props":1703,"children":1704},{"style":1060},[1705],{"type":47,"value":1706},"[Specific technical information relevant to this task]\n",{"type":42,"tag":781,"props":1708,"children":1709},{"class":1039,"line":1159},[1710,1714],{"type":42,"tag":781,"props":1711,"children":1712},{"style":1044},[1713],{"type":47,"value":1125},{"type":42,"tag":781,"props":1715,"children":1716},{"style":1060},[1717],{"type":47,"value":1718}," Technologies: [e.g., Node.js, React, PostgreSQL]\n",{"type":42,"tag":781,"props":1720,"children":1721},{"class":1039,"line":1167},[1722,1726],{"type":42,"tag":781,"props":1723,"children":1724},{"style":1044},[1725],{"type":47,"value":1125},{"type":42,"tag":781,"props":1727,"children":1728},{"style":1060},[1729],{"type":47,"value":1730}," Components: [e.g., API routes, database tables, UI components]\n",{"type":42,"tag":781,"props":1732,"children":1733},{"class":1039,"line":1180},[1734,1738],{"type":42,"tag":781,"props":1735,"children":1736},{"style":1044},[1737],{"type":47,"value":1125},{"type":42,"tag":781,"props":1739,"children":1740},{"style":1060},[1741],{"type":47,"value":1742}," Dependencies: [e.g., requires PROJ-124 to be completed first]\n",{"type":42,"tag":781,"props":1744,"children":1745},{"class":1039,"line":1189},[1746],{"type":42,"tag":781,"props":1747,"children":1748},{"emptyLinePlaceholder":1070},[1749],{"type":47,"value":1073},{"type":42,"tag":781,"props":1751,"children":1752},{"class":1039,"line":1197},[1753,1757],{"type":42,"tag":781,"props":1754,"children":1755},{"style":1044},[1756],{"type":47,"value":1047},{"type":42,"tag":781,"props":1758,"children":1759},{"style":1050},[1760],{"type":47,"value":1761},"Acceptance Criteria\n",{"type":42,"tag":781,"props":1763,"children":1764},{"class":1039,"line":1210},[1765,1769],{"type":42,"tag":781,"props":1766,"children":1767},{"style":1044},[1768],{"type":47,"value":1125},{"type":42,"tag":781,"props":1770,"children":1771},{"style":1060},[1772],{"type":47,"value":1773}," [ ] [Testable criterion 1]\n",{"type":42,"tag":781,"props":1775,"children":1776},{"class":1039,"line":1223},[1777,1781],{"type":42,"tag":781,"props":1778,"children":1779},{"style":1044},[1780],{"type":47,"value":1125},{"type":42,"tag":781,"props":1782,"children":1783},{"style":1060},[1784],{"type":47,"value":1785}," [ ] [Testable criterion 2]\n",{"type":42,"tag":781,"props":1787,"children":1788},{"class":1039,"line":1236},[1789,1793],{"type":42,"tag":781,"props":1790,"children":1791},{"style":1044},[1792],{"type":47,"value":1125},{"type":42,"tag":781,"props":1794,"children":1795},{"style":1060},[1796],{"type":47,"value":1797}," [ ] [Testable criterion 3]\n",{"type":42,"tag":781,"props":1799,"children":1800},{"class":1039,"line":1249},[1801],{"type":42,"tag":781,"props":1802,"children":1803},{"emptyLinePlaceholder":1070},[1804],{"type":47,"value":1073},{"type":42,"tag":781,"props":1806,"children":1807},{"class":1039,"line":1257},[1808,1812],{"type":42,"tag":781,"props":1809,"children":1810},{"style":1044},[1811],{"type":47,"value":1047},{"type":42,"tag":781,"props":1813,"children":1814},{"style":1050},[1815],{"type":47,"value":1816},"Related\n",{"type":42,"tag":781,"props":1818,"children":1819},{"class":1039,"line":1270},[1820,1824],{"type":42,"tag":781,"props":1821,"children":1822},{"style":1044},[1823],{"type":47,"value":1125},{"type":42,"tag":781,"props":1825,"children":1826},{"style":1060},[1827],{"type":47,"value":1828}," Confluence Spec: [Link to relevant section if possible]\n",{"type":42,"tag":781,"props":1830,"children":1832},{"class":1039,"line":1831},22,[1833,1837],{"type":42,"tag":781,"props":1834,"children":1835},{"style":1044},[1836],{"type":47,"value":1125},{"type":42,"tag":781,"props":1838,"children":1839},{"style":1060},[1840],{"type":47,"value":1841}," Epic: PROJ-123\n",{"type":42,"tag":185,"props":1843,"children":1845},{"id":1844},"acceptance-criteria-best-practices",[1846],{"type":47,"value":1847},"Acceptance Criteria Best Practices:",{"type":42,"tag":57,"props":1849,"children":1850},{},[1851,1853,1858,1860,1865],{"type":47,"value":1852},"Make them ",{"type":42,"tag":63,"props":1854,"children":1855},{},[1856],{"type":47,"value":1857},"testable",{"type":47,"value":1859}," and ",{"type":42,"tag":63,"props":1861,"children":1862},{},[1863],{"type":47,"value":1864},"specific",{"type":47,"value":1342},{"type":42,"tag":197,"props":1867,"children":1868},{},[1869,1874,1879,1884,1889],{"type":42,"tag":89,"props":1870,"children":1871},{},[1872],{"type":47,"value":1873},"✅ \"API returns 201 status on successful user creation\"",{"type":42,"tag":89,"props":1875,"children":1876},{},[1877],{"type":47,"value":1878},"✅ \"Password must be at least 8 characters and hashed with bcrypt\"",{"type":42,"tag":89,"props":1880,"children":1881},{},[1882],{"type":47,"value":1883},"✅ \"Login form validates email format before submission\"",{"type":42,"tag":89,"props":1885,"children":1886},{},[1887],{"type":47,"value":1888},"❌ \"User can log in\" (too vague)",{"type":42,"tag":89,"props":1890,"children":1891},{},[1892],{"type":47,"value":1893},"❌ \"It works correctly\" (not testable)",{"type":42,"tag":185,"props":1895,"children":1897},{"id":1896},"create-all-tickets-sequentially",[1898],{"type":47,"value":1899},"Create all tickets sequentially:",{"type":42,"tag":57,"props":1901,"children":1902},{},[1903],{"type":47,"value":1904},"Track each created ticket key for the summary.",{"type":42,"tag":170,"props":1906,"children":1907},{},[],{"type":42,"tag":50,"props":1909,"children":1911},{"id":1910},"step-7-provide-summary",[1912],{"type":47,"value":1913},"Step 7: Provide Summary",{"type":42,"tag":57,"props":1915,"children":1916},{},[1917],{"type":47,"value":1918},"After all tickets are created, present a comprehensive summary:",{"type":42,"tag":256,"props":1920,"children":1923},{"className":1921,"code":1922,"language":47},[259],"✅ Backlog created successfully!\n\n**Epic:** PROJ-123 - User Authentication System\nhttps:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-123\n\n**Implementation Tickets (7):**\n\n1. PROJ-124 - Design authentication database schema\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-124\n\n2. PROJ-125 - Implement user registration API endpoint\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-125\n\n3. PROJ-126 - Implement user login API endpoint\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-126\n\n4. PROJ-127 - Build login form UI components\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-127\n\n5. PROJ-128 - Build registration form UI components\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-128\n\n6. PROJ-129 - Add authentication integration to existing features\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-129\n\n7. PROJ-130 - Write authentication tests and documentation\n   https:\u002F\u002Fyoursite.atlassian.net\u002Fbrowse\u002FPROJ-130\n\n**Source:** https:\u002F\u002Fyoursite.atlassian.net\u002Fwiki\u002Fspaces\u002FSPECS\u002Fpages\u002F123456\n\n**Next Steps:**\n- Review tickets in Jira for accuracy and completeness\n- Assign tickets to team members\n- Estimate story points if your team uses them\n- Add any additional labels or custom field values\n- Schedule work for the upcoming sprint\n",[1924],{"type":42,"tag":206,"props":1925,"children":1926},{"__ignoreMap":264},[1927],{"type":47,"value":1922},{"type":42,"tag":170,"props":1929,"children":1930},{},[],{"type":42,"tag":50,"props":1932,"children":1934},{"id":1933},"edge-cases-troubleshooting",[1935],{"type":47,"value":1936},"Edge Cases & Troubleshooting",{"type":42,"tag":185,"props":1938,"children":1940},{"id":1939},"multiple-specs-or-pages",[1941],{"type":47,"value":1942},"Multiple Specs or Pages",{"type":42,"tag":57,"props":1944,"children":1945},{},[1946],{"type":42,"tag":63,"props":1947,"children":1948},{},[1949],{"type":47,"value":1950},"If user references multiple Confluence pages:",{"type":42,"tag":197,"props":1952,"children":1953},{},[1954,1959,1964],{"type":42,"tag":89,"props":1955,"children":1956},{},[1957],{"type":47,"value":1958},"Process each separately, or ask which to prioritize",{"type":42,"tag":89,"props":1960,"children":1961},{},[1962],{"type":47,"value":1963},"Consider creating separate Epics for distinct features",{"type":42,"tag":89,"props":1965,"children":1966},{},[1967],{"type":47,"value":1968},"\"I see you've provided 3 spec pages. Should I create separate Epics for each, or would you like me to focus on one first?\"",{"type":42,"tag":185,"props":1970,"children":1972},{"id":1971},"existing-epic",[1973],{"type":47,"value":1974},"Existing Epic",{"type":42,"tag":57,"props":1976,"children":1977},{},[1978],{"type":42,"tag":63,"props":1979,"children":1980},{},[1981],{"type":47,"value":1982},"If user wants to add tickets to an existing Epic:",{"type":42,"tag":197,"props":1984,"children":1985},{},[1986,1991,1996],{"type":42,"tag":89,"props":1987,"children":1988},{},[1989],{"type":47,"value":1990},"Skip Epic creation (Step 5)",{"type":42,"tag":89,"props":1992,"children":1993},{},[1994],{"type":47,"value":1995},"Ask for the existing Epic key: \"What's the Epic key you'd like to add tickets to? (e.g., PROJ-100)\"",{"type":42,"tag":89,"props":1997,"children":1998},{},[1999],{"type":47,"value":2000},"Proceed with Step 6 using the provided Epic key",{"type":42,"tag":185,"props":2002,"children":2004},{"id":2003},"custom-required-fields",[2005],{"type":47,"value":2006},"Custom Required Fields",{"type":42,"tag":57,"props":2008,"children":2009},{},[2010],{"type":42,"tag":63,"props":2011,"children":2012},{},[2013],{"type":47,"value":2014},"If ticket creation fails due to required fields:",{"type":42,"tag":85,"props":2016,"children":2017},{},[2018,2040,2045],{"type":42,"tag":89,"props":2019,"children":2020},{},[2021,2023,2029,2031],{"type":47,"value":2022},"Use ",{"type":42,"tag":206,"props":2024,"children":2026},{"className":2025},[],[2027],{"type":47,"value":2028},"getJiraIssueTypeMetaWithFields",{"type":47,"value":2030}," to identify what fields are required:",{"type":42,"tag":256,"props":2032,"children":2035},{"className":2033,"code":2034,"language":47},[259],"getJiraIssueTypeMetaWithFields(\n  cloudId=\"...\",\n  projectIdOrKey=\"PROJ\",\n  issueTypeId=\"10001\"\n)\n",[2036],{"type":42,"tag":206,"props":2037,"children":2038},{"__ignoreMap":264},[2039],{"type":47,"value":2034},{"type":42,"tag":89,"props":2041,"children":2042},{},[2043],{"type":47,"value":2044},"Ask user for values: \"This project requires a 'Priority' field. What priority should I use? (e.g., High, Medium, Low)\"",{"type":42,"tag":89,"props":2046,"children":2047},{},[2048,2050,2056,2058],{"type":47,"value":2049},"Include in ",{"type":42,"tag":206,"props":2051,"children":2053},{"className":2052},[],[2054],{"type":47,"value":2055},"additional_fields",{"type":47,"value":2057}," when creating:",{"type":42,"tag":256,"props":2059,"children":2062},{"className":2060,"code":2061,"language":47},[259],"additional_fields={\n  \"priority\": {\"name\": \"High\"}\n}\n",[2063],{"type":42,"tag":206,"props":2064,"children":2065},{"__ignoreMap":264},[2066],{"type":47,"value":2061},{"type":42,"tag":185,"props":2068,"children":2070},{"id":2069},"large-specifications",[2071],{"type":47,"value":2072},"Large Specifications",{"type":42,"tag":57,"props":2074,"children":2075},{},[2076],{"type":42,"tag":63,"props":2077,"children":2078},{},[2079],{"type":47,"value":2080},"For specs that would generate 15+ tickets:",{"type":42,"tag":197,"props":2082,"children":2083},{},[2084,2089,2094],{"type":42,"tag":89,"props":2085,"children":2086},{},[2087],{"type":47,"value":2088},"Present the full breakdown to user",{"type":42,"tag":89,"props":2090,"children":2091},{},[2092],{"type":47,"value":2093},"Ask: \"This spec would create 18 tickets. Should I create all of them, or would you like to adjust the scope?\"",{"type":42,"tag":89,"props":2095,"children":2096},{},[2097],{"type":47,"value":2098},"Offer to create a subset first: \"I can create the first 10 tickets now and wait for your feedback before creating the rest.\"",{"type":42,"tag":185,"props":2100,"children":2102},{"id":2101},"subtasks-vs-tasks",[2103],{"type":47,"value":2104},"Subtasks vs Tasks",{"type":42,"tag":57,"props":2106,"children":2107},{},[2108],{"type":42,"tag":63,"props":2109,"children":2110},{},[2111],{"type":47,"value":2112},"Some projects use \"Subtask\" issue types:",{"type":42,"tag":197,"props":2114,"children":2115},{},[2116,2121,2126],{"type":42,"tag":89,"props":2117,"children":2118},{},[2119],{"type":47,"value":2120},"If metadata shows \"Subtask\" is available, you can use it for more granular work",{"type":42,"tag":89,"props":2122,"children":2123},{},[2124],{"type":47,"value":2125},"Subtasks link to parent tasks (not Epics directly)",{"type":42,"tag":89,"props":2127,"children":2128},{},[2129],{"type":47,"value":2130},"Structure: Epic → Task → Subtasks",{"type":42,"tag":185,"props":2132,"children":2134},{"id":2133},"ambiguous-specifications",[2135],{"type":47,"value":2136},"Ambiguous Specifications",{"type":42,"tag":57,"props":2138,"children":2139},{},[2140],{"type":42,"tag":63,"props":2141,"children":2142},{},[2143],{"type":47,"value":2144},"If the Confluence page lacks detail:",{"type":42,"tag":197,"props":2146,"children":2147},{},[2148,2153,2158],{"type":42,"tag":89,"props":2149,"children":2150},{},[2151],{"type":47,"value":2152},"Create fewer, broader tickets",{"type":42,"tag":89,"props":2154,"children":2155},{},[2156],{"type":47,"value":2157},"Note in ticket descriptions: \"Detailed requirements need to be defined during refinement\"",{"type":42,"tag":89,"props":2159,"children":2160},{},[2161],{"type":47,"value":2162},"Ask user: \"The spec is light on implementation details. Should I create high-level tickets that can be refined later?\"",{"type":42,"tag":185,"props":2164,"children":2166},{"id":2165},"failed-api-calls",[2167],{"type":47,"value":2168},"Failed API Calls",{"type":42,"tag":57,"props":2170,"children":2171},{},[2172],{"type":42,"tag":63,"props":2173,"children":2174},{},[2175,2177,2182],{"type":47,"value":2176},"If ",{"type":42,"tag":206,"props":2178,"children":2180},{"className":2179},[],[2181],{"type":47,"value":1010},{"type":47,"value":2183}," fails:",{"type":42,"tag":85,"props":2185,"children":2186},{},[2187,2192,2203],{"type":42,"tag":89,"props":2188,"children":2189},{},[2190],{"type":47,"value":2191},"Check the error message for specific issues (permissions, required fields, invalid values)",{"type":42,"tag":89,"props":2193,"children":2194},{},[2195,2196,2201],{"type":47,"value":2022},{"type":42,"tag":206,"props":2197,"children":2199},{"className":2198},[],[2200],{"type":47,"value":382},{"type":47,"value":2202}," to verify issue type availability",{"type":42,"tag":89,"props":2204,"children":2205},{},[2206,2208,2213],{"type":47,"value":2207},"Inform user: \"I encountered an error creating tickets: ",{"type":42,"tag":781,"props":2209,"children":2210},{},[2211],{"type":47,"value":2212},"error message",{"type":47,"value":2214},". This might be due to project permissions or required fields.\"",{"type":42,"tag":170,"props":2216,"children":2217},{},[],{"type":42,"tag":50,"props":2219,"children":2221},{"id":2220},"tips-for-high-quality-breakdowns",[2222],{"type":47,"value":2223},"Tips for High-Quality Breakdowns",{"type":42,"tag":185,"props":2225,"children":2227},{"id":2226},"be-specific",[2228],{"type":47,"value":2229},"Be Specific",{"type":42,"tag":197,"props":2231,"children":2232},{},[2233,2238],{"type":42,"tag":89,"props":2234,"children":2235},{},[2236],{"type":47,"value":2237},"❌ \"Do frontend work\"",{"type":42,"tag":89,"props":2239,"children":2240},{},[2241],{"type":47,"value":2242},"✅ \"Create login form UI with email\u002Fpassword inputs and validation\"",{"type":42,"tag":185,"props":2244,"children":2246},{"id":2245},"include-technical-context",[2247],{"type":47,"value":2248},"Include Technical Context",{"type":42,"tag":197,"props":2250,"children":2251},{},[2252,2257,2262],{"type":42,"tag":89,"props":2253,"children":2254},{},[2255],{"type":47,"value":2256},"Mention specific technologies when clear from spec",{"type":42,"tag":89,"props":2258,"children":2259},{},[2260],{"type":47,"value":2261},"Reference components, services, or modules",{"type":42,"tag":89,"props":2263,"children":2264},{},[2265],{"type":47,"value":2266},"Note integration points",{"type":42,"tag":185,"props":2268,"children":2270},{"id":2269},"logical-grouping",[2271],{"type":47,"value":2272},"Logical Grouping",{"type":42,"tag":197,"props":2274,"children":2275},{},[2276,2281,2286],{"type":42,"tag":89,"props":2277,"children":2278},{},[2279],{"type":47,"value":2280},"Related work stays in the same ticket",{"type":42,"tag":89,"props":2282,"children":2283},{},[2284],{"type":47,"value":2285},"Don't split artificially: \"Build user profile page\" includes both UI and API integration",{"type":42,"tag":89,"props":2287,"children":2288},{},[2289],{"type":47,"value":2290},"Do split when different specialties: Separate backend API task from frontend UI task if worked on by different people",{"type":42,"tag":185,"props":2292,"children":2294},{"id":2293},"avoid-duplication",[2295],{"type":47,"value":2296},"Avoid Duplication",{"type":42,"tag":197,"props":2298,"children":2299},{},[2300,2305],{"type":42,"tag":89,"props":2301,"children":2302},{},[2303],{"type":47,"value":2304},"Don't create redundant tickets for the same functionality",{"type":42,"tag":89,"props":2306,"children":2307},{},[2308],{"type":47,"value":2309},"If multiple features need the same infrastructure, create one infrastructure ticket they all depend on",{"type":42,"tag":185,"props":2311,"children":2313},{"id":2312},"explicit-testing",[2314],{"type":47,"value":2315},"Explicit Testing",{"type":42,"tag":197,"props":2317,"children":2318},{},[2319,2324],{"type":42,"tag":89,"props":2320,"children":2321},{},[2322],{"type":47,"value":2323},"Include testing as part of feature tasks (\"Implement X with unit tests\")",{"type":42,"tag":89,"props":2325,"children":2326},{},[2327],{"type":47,"value":2328},"OR create separate testing tasks for complex features (\"Write integration tests for authentication flow\")",{"type":42,"tag":185,"props":2330,"children":2332},{"id":2331},"documentation-tasks",[2333],{"type":47,"value":2334},"Documentation Tasks",{"type":42,"tag":197,"props":2336,"children":2337},{},[2338,2343],{"type":42,"tag":89,"props":2339,"children":2340},{},[2341],{"type":47,"value":2342},"For user-facing features: Include \"Update user documentation\" or \"Create help articles\"",{"type":42,"tag":89,"props":2344,"children":2345},{},[2346],{"type":47,"value":2347},"For developer tools: Include \"Update API documentation\" or \"Write integration guide\"",{"type":42,"tag":185,"props":2349,"children":2351},{"id":2350},"dependencies",[2352],{"type":47,"value":2353},"Dependencies",{"type":42,"tag":197,"props":2355,"children":2356},{},[2357,2362,2367],{"type":42,"tag":89,"props":2358,"children":2359},{},[2360],{"type":47,"value":2361},"Note prerequisites in ticket descriptions",{"type":42,"tag":89,"props":2363,"children":2364},{},[2365],{"type":47,"value":2366},"Use \"Depends on\" or \"Blocks\" relationships in Jira if available",{"type":42,"tag":89,"props":2368,"children":2369},{},[2370],{"type":47,"value":2371},"Sequence tickets logically (infrastructure → implementation → testing)",{"type":42,"tag":170,"props":2373,"children":2374},{},[],{"type":42,"tag":50,"props":2376,"children":2378},{"id":2377},"examples-of-good-breakdowns",[2379],{"type":47,"value":2380},"Examples of Good Breakdowns",{"type":42,"tag":185,"props":2382,"children":2384},{"id":2383},"example-1-new-feature-search-functionality",[2385],{"type":47,"value":2386},"Example 1: New Feature - Search Functionality",{"type":42,"tag":57,"props":2388,"children":2389},{},[2390,2395],{"type":42,"tag":63,"props":2391,"children":2392},{},[2393],{"type":47,"value":2394},"Epic:",{"type":47,"value":2396}," Product Search and Filtering",{"type":42,"tag":57,"props":2398,"children":2399},{},[2400],{"type":42,"tag":63,"props":2401,"children":2402},{},[2403],{"type":47,"value":2404},"Tickets:",{"type":42,"tag":85,"props":2406,"children":2407},{},[2408,2417,2426,2435,2444,2453,2462],{"type":42,"tag":89,"props":2409,"children":2410},{},[2411,2415],{"type":42,"tag":781,"props":2412,"children":2413},{},[2414],{"type":47,"value":930},{"type":47,"value":2416}," Design search index schema and data structure",{"type":42,"tag":89,"props":2418,"children":2419},{},[2420,2424],{"type":42,"tag":781,"props":2421,"children":2422},{},[2423],{"type":47,"value":930},{"type":47,"value":2425}," Implement backend search API with Elasticsearch",{"type":42,"tag":89,"props":2427,"children":2428},{},[2429,2433],{"type":42,"tag":781,"props":2430,"children":2431},{},[2432],{"type":47,"value":920},{"type":47,"value":2434}," Build search input and results UI components",{"type":42,"tag":89,"props":2436,"children":2437},{},[2438,2442],{"type":42,"tag":781,"props":2439,"children":2440},{},[2441],{"type":47,"value":920},{"type":47,"value":2443}," Add advanced filtering (price, category, ratings)",{"type":42,"tag":89,"props":2445,"children":2446},{},[2447,2451],{"type":42,"tag":781,"props":2448,"children":2449},{},[2450],{"type":47,"value":920},{"type":47,"value":2452}," Implement search suggestions and autocomplete",{"type":42,"tag":89,"props":2454,"children":2455},{},[2456,2460],{"type":42,"tag":781,"props":2457,"children":2458},{},[2459],{"type":47,"value":930},{"type":47,"value":2461}," Optimize search performance and add caching",{"type":42,"tag":89,"props":2463,"children":2464},{},[2465,2469],{"type":42,"tag":781,"props":2466,"children":2467},{},[2468],{"type":47,"value":930},{"type":47,"value":2470}," Write search integration tests and documentation",{"type":42,"tag":185,"props":2472,"children":2474},{"id":2473},"example-2-bug-fix-performance-issue",[2475],{"type":47,"value":2476},"Example 2: Bug Fix - Performance Issue",{"type":42,"tag":57,"props":2478,"children":2479},{},[2480,2484],{"type":42,"tag":63,"props":2481,"children":2482},{},[2483],{"type":47,"value":2394},{"type":47,"value":2485}," Resolve Dashboard Load Time Issues",{"type":42,"tag":57,"props":2487,"children":2488},{},[2489],{"type":42,"tag":63,"props":2490,"children":2491},{},[2492],{"type":47,"value":2404},{"type":42,"tag":85,"props":2494,"children":2495},{},[2496,2505,2514,2523,2532],{"type":42,"tag":89,"props":2497,"children":2498},{},[2499,2503],{"type":42,"tag":781,"props":2500,"children":2501},{},[2502],{"type":47,"value":930},{"type":47,"value":2504}," Profile and identify performance bottlenecks",{"type":42,"tag":89,"props":2506,"children":2507},{},[2508,2512],{"type":42,"tag":781,"props":2509,"children":2510},{},[2511],{"type":47,"value":940},{"type":47,"value":2513}," Optimize database queries with indexes and caching",{"type":42,"tag":89,"props":2515,"children":2516},{},[2517,2521],{"type":42,"tag":781,"props":2518,"children":2519},{},[2520],{"type":47,"value":940},{"type":47,"value":2522}," Implement lazy loading for dashboard widgets",{"type":42,"tag":89,"props":2524,"children":2525},{},[2526,2530],{"type":42,"tag":781,"props":2527,"children":2528},{},[2529],{"type":47,"value":940},{"type":47,"value":2531}," Add pagination to large data tables",{"type":42,"tag":89,"props":2533,"children":2534},{},[2535,2539],{"type":42,"tag":781,"props":2536,"children":2537},{},[2538],{"type":47,"value":930},{"type":47,"value":2540}," Set up performance monitoring and alerts",{"type":42,"tag":185,"props":2542,"children":2544},{"id":2543},"example-3-infrastructure-cicd-pipeline",[2545],{"type":47,"value":2546},"Example 3: Infrastructure - CI\u002FCD Pipeline",{"type":42,"tag":57,"props":2548,"children":2549},{},[2550,2554],{"type":42,"tag":63,"props":2551,"children":2552},{},[2553],{"type":47,"value":2394},{"type":47,"value":2555}," Automated Deployment Pipeline",{"type":42,"tag":57,"props":2557,"children":2558},{},[2559],{"type":42,"tag":63,"props":2560,"children":2561},{},[2562],{"type":47,"value":2404},{"type":42,"tag":85,"props":2564,"children":2565},{},[2566,2575,2584,2593,2602,2611],{"type":42,"tag":89,"props":2567,"children":2568},{},[2569,2573],{"type":42,"tag":781,"props":2570,"children":2571},{},[2572],{"type":47,"value":930},{"type":47,"value":2574}," Set up GitHub Actions workflow configuration",{"type":42,"tag":89,"props":2576,"children":2577},{},[2578,2582],{"type":42,"tag":781,"props":2579,"children":2580},{},[2581],{"type":47,"value":930},{"type":47,"value":2583}," Implement automated testing in CI pipeline",{"type":42,"tag":89,"props":2585,"children":2586},{},[2587,2591],{"type":42,"tag":781,"props":2588,"children":2589},{},[2590],{"type":47,"value":930},{"type":47,"value":2592}," Configure staging environment deployment",{"type":42,"tag":89,"props":2594,"children":2595},{},[2596,2600],{"type":42,"tag":781,"props":2597,"children":2598},{},[2599],{"type":47,"value":930},{"type":47,"value":2601}," Implement blue-green production deployment",{"type":42,"tag":89,"props":2603,"children":2604},{},[2605,2609],{"type":42,"tag":781,"props":2606,"children":2607},{},[2608],{"type":47,"value":930},{"type":47,"value":2610}," Add deployment rollback mechanism",{"type":42,"tag":89,"props":2612,"children":2613},{},[2614,2618],{"type":42,"tag":781,"props":2615,"children":2616},{},[2617],{"type":47,"value":930},{"type":47,"value":2619}," Create deployment runbook and documentation",{"type":42,"tag":2621,"props":2622,"children":2623},"style",{},[2624],{"type":47,"value":2625},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2627,"total":2749},[2628,2647,2663,2675,2695,2717,2737],{"slug":2629,"name":2629,"fn":2630,"description":2631,"org":2632,"tags":2633,"stars":25,"repoUrl":26,"updatedAt":2646},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2634,2637,2640,2643],{"name":2635,"slug":2636,"type":15},"Accessibility","accessibility",{"name":2638,"slug":2639,"type":15},"Charts","charts",{"name":2641,"slug":2642,"type":15},"Data Visualization","data-visualization",{"name":2644,"slug":2645,"type":15},"Design","design","2026-06-30T19:00:57.102",{"slug":2648,"name":2648,"fn":2649,"description":2650,"org":2651,"tags":2652,"stars":25,"repoUrl":26,"updatedAt":2662},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2653,2656,2659],{"name":2654,"slug":2655,"type":15},"Agents","agents",{"name":2657,"slug":2658,"type":15},"Browser Automation","browser-automation",{"name":2660,"slug":2661,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":2664,"name":2664,"fn":2665,"description":2666,"org":2667,"tags":2668,"stars":25,"repoUrl":26,"updatedAt":2674},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2669,2670,2673],{"name":2657,"slug":2658,"type":15},{"name":2671,"slug":2672,"type":15},"Local Development","local-development",{"name":2660,"slug":2661,"type":15},"2026-04-06T18:41:17.526867",{"slug":2676,"name":2676,"fn":2677,"description":2678,"org":2679,"tags":2680,"stars":25,"repoUrl":26,"updatedAt":2694},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2681,2682,2685,2688,2691],{"name":2654,"slug":2655,"type":15},{"name":2683,"slug":2684,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":2686,"slug":2687,"type":15},"SDK","sdk",{"name":2689,"slug":2690,"type":15},"Serverless","serverless",{"name":2692,"slug":2693,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":2696,"name":2696,"fn":2697,"description":2698,"org":2699,"tags":2700,"stars":25,"repoUrl":26,"updatedAt":2716},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2701,2704,2707,2710,2713],{"name":2702,"slug":2703,"type":15},"Frontend","frontend",{"name":2705,"slug":2706,"type":15},"React","react",{"name":2708,"slug":2709,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":2711,"slug":2712,"type":15},"UI Components","ui-components",{"name":2714,"slug":2715,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":2718,"name":2718,"fn":2719,"description":2720,"org":2721,"tags":2722,"stars":25,"repoUrl":26,"updatedAt":2736},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2723,2726,2729,2732,2735],{"name":2724,"slug":2725,"type":15},"AI Infrastructure","ai-infrastructure",{"name":2727,"slug":2728,"type":15},"Cost Optimization","cost-optimization",{"name":2730,"slug":2731,"type":15},"LLM","llm",{"name":2733,"slug":2734,"type":15},"Performance","performance",{"name":2714,"slug":2715,"type":15},"2026-04-06T18:40:44.377464",{"slug":2738,"name":2738,"fn":2739,"description":2740,"org":2741,"tags":2742,"stars":25,"repoUrl":26,"updatedAt":2748},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2743,2744,2747],{"name":2727,"slug":2728,"type":15},{"name":2745,"slug":2746,"type":15},"Database","database",{"name":2730,"slug":2731,"type":15},"2026-04-06T18:41:08.513425",600,{"items":2751,"total":2946},[2752,2773,2796,2813,2829,2846,2863,2875,2889,2903,2915,2930],{"slug":2753,"name":2753,"fn":2754,"description":2755,"org":2756,"tags":2757,"stars":2770,"repoUrl":2771,"updatedAt":2772},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2758,2761,2764,2767],{"name":2759,"slug":2760,"type":15},"Documents","documents",{"name":2762,"slug":2763,"type":15},"Healthcare","healthcare",{"name":2765,"slug":2766,"type":15},"Insurance","insurance",{"name":2768,"slug":2769,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":2774,"name":2774,"fn":2775,"description":2776,"org":2777,"tags":2778,"stars":2793,"repoUrl":2794,"updatedAt":2795},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2779,2782,2784,2787,2790],{"name":2780,"slug":2781,"type":15},".NET","dotnet",{"name":2783,"slug":2774,"type":15},"ASP.NET Core",{"name":2785,"slug":2786,"type":15},"Blazor","blazor",{"name":2788,"slug":2789,"type":15},"C#","csharp",{"name":2791,"slug":2792,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":2797,"name":2797,"fn":2798,"description":2799,"org":2800,"tags":2801,"stars":2793,"repoUrl":2794,"updatedAt":2812},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2802,2805,2808,2811],{"name":2803,"slug":2804,"type":15},"Apps SDK","apps-sdk",{"name":2806,"slug":2807,"type":15},"ChatGPT","chatgpt",{"name":2809,"slug":2810,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":2814,"name":2814,"fn":2815,"description":2816,"org":2817,"tags":2818,"stars":2793,"repoUrl":2794,"updatedAt":2828},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2819,2822,2825],{"name":2820,"slug":2821,"type":15},"API Development","api-development",{"name":2823,"slug":2824,"type":15},"CLI","cli",{"name":2826,"slug":2827,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":2830,"name":2830,"fn":2831,"description":2832,"org":2833,"tags":2834,"stars":2793,"repoUrl":2794,"updatedAt":2845},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2835,2838,2841,2842],{"name":2836,"slug":2837,"type":15},"Cloudflare","cloudflare",{"name":2839,"slug":2840,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":2683,"slug":2684,"type":15},{"name":2843,"slug":2844,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":2847,"name":2847,"fn":2848,"description":2849,"org":2850,"tags":2851,"stars":2793,"repoUrl":2794,"updatedAt":2862},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2852,2855,2856,2859],{"name":2853,"slug":2854,"type":15},"Productivity","productivity",{"name":20,"slug":21,"type":15},{"name":2857,"slug":2858,"type":15},"Strategy","strategy",{"name":2860,"slug":2861,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":2864,"name":2864,"fn":2865,"description":2866,"org":2867,"tags":2868,"stars":2793,"repoUrl":2794,"updatedAt":2874},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2869,2870,2872,2873],{"name":2644,"slug":2645,"type":15},{"name":2871,"slug":2864,"type":15},"Figma",{"name":2702,"slug":2703,"type":15},{"name":2809,"slug":2810,"type":15},"2026-04-12T05:06:47.939943",{"slug":2876,"name":2876,"fn":2877,"description":2878,"org":2879,"tags":2880,"stars":2793,"repoUrl":2794,"updatedAt":2888},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2881,2882,2885,2886,2887],{"name":2644,"slug":2645,"type":15},{"name":2883,"slug":2884,"type":15},"Design System","design-system",{"name":2871,"slug":2864,"type":15},{"name":2702,"slug":2703,"type":15},{"name":2711,"slug":2712,"type":15},"2026-05-10T05:59:52.971881",{"slug":2890,"name":2890,"fn":2891,"description":2892,"org":2893,"tags":2894,"stars":2793,"repoUrl":2794,"updatedAt":2902},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2895,2896,2897,2900,2901],{"name":2644,"slug":2645,"type":15},{"name":2883,"slug":2884,"type":15},{"name":2898,"slug":2899,"type":15},"Documentation","documentation",{"name":2871,"slug":2864,"type":15},{"name":2702,"slug":2703,"type":15},"2026-05-16T06:07:47.821474",{"slug":2904,"name":2904,"fn":2905,"description":2906,"org":2907,"tags":2908,"stars":2793,"repoUrl":2794,"updatedAt":2914},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2909,2910,2911,2912,2913],{"name":2644,"slug":2645,"type":15},{"name":2871,"slug":2864,"type":15},{"name":2702,"slug":2703,"type":15},{"name":2711,"slug":2712,"type":15},{"name":2791,"slug":2792,"type":15},"2026-05-16T06:07:40.583615",{"slug":2916,"name":2916,"fn":2917,"description":2918,"org":2919,"tags":2920,"stars":2793,"repoUrl":2794,"updatedAt":2929},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2921,2924,2925,2928],{"name":2922,"slug":2923,"type":15},"Animation","animation",{"name":2826,"slug":2827,"type":15},{"name":2926,"slug":2927,"type":15},"Creative","creative",{"name":2644,"slug":2645,"type":15},"2026-05-02T05:31:48.48485",{"slug":2931,"name":2931,"fn":2932,"description":2933,"org":2934,"tags":2935,"stars":2793,"repoUrl":2794,"updatedAt":2945},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2936,2937,2938,2941,2944],{"name":2926,"slug":2927,"type":15},{"name":2644,"slug":2645,"type":15},{"name":2939,"slug":2940,"type":15},"Image Generation","image-generation",{"name":2942,"slug":2943,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]