--- name: HyperShift Jira Conventions description: HyperShift team-specific Jira requirements for component selection and conventions --- # HyperShift Jira Conventions This skill provides HyperShift team-specific conventions for creating Jira issues in CNTRLPLANE and OCPBUGS projects. ## When to Use This Skill This skill is automatically invoked when: - Summary or description contains HyperShift keywords: "HyperShift", "ARO HCP", "ROSA HCP", "hosted control plane" - Component contains "HyperShift" - User explicitly requests HyperShift conventions This skill works **in conjunction with** the `cntrlplane` skill, adding HyperShift-specific requirements on top of generic CNTRLPLANE/OCPBUGS conventions. ## Component Requirements **ALL** HyperShift issues in CNTRLPLANE and OCPBUGS **must** have a component set to one of: 1. **HyperShift / ARO** - ARO HCP (Azure Red Hat OpenShift Hosted Control Planes) 2. **HyperShift / ROSA** - ROSA HCP (Red Hat OpenShift Service on AWS Hosted Control Planes) 3. **HyperShift** - When it's not clear if the issue is about AWS, Azure, or agent platform ### Component Selection Logic **Auto-detection based on summary/description keywords:** | Keywords | Component | Confidence | |----------|-----------|------------| | ARO, Azure, "ARO HCP" | **HyperShift / ARO** | High | | ROSA, AWS, "ROSA HCP" | **HyperShift / ROSA** | High | | Both ARO and ROSA mentioned | **HyperShift** | High (multi-platform) | | "All platforms", "platform-agnostic" | **HyperShift** | Medium (verify with user) | | **No platform keywords** | **Prompt user** | N/A (cannot auto-detect) | **Important:** If no platform keywords are found, do NOT assume platform-agnostic. Prompt the user to clarify which component. **Examples:** ``` Summary: "Enable autoscaling for ROSA HCP clusters" → Component: HyperShift / ROSA (auto-detected) Summary: "ARO HCP control plane pods crash on upgrade" → Component: HyperShift / ARO (auto-detected) Summary: "Multi-cloud support for ARO and ROSA HCP" → Component: HyperShift (auto-detected, mentions both platforms) Summary: "Improve control plane pod scheduling" → Component: Prompt user (no keywords, cannot determine platform) ``` ### When Auto-Detection is Uncertain If component cannot be confidently auto-detected: 1. Present options to user with descriptions 2. Ask for clarification **Prompt example:** ``` Which HyperShift platform does this issue affect? 1. HyperShift / ARO - for ARO HCP (Azure) issues 2. HyperShift / ROSA - for ROSA HCP (AWS) issues 3. HyperShift - for platform-agnostic issues or affects both Select (1-3): ``` ## Version Defaults HyperShift team uses specific version defaults: ### CNTRLPLANE Issues **Target Version** (customfield_12319940): - **Default:** `openshift-4.21` - **Override:** User may specify different versions (e.g., `4.20`, `4.22`, `4.23`) ### OCPBUGS Issues **Affects Version/s**: - **Default:** `4.21` - **User should specify:** The actual version where the bug was found **Target Version** (customfield_12319940): - **Default:** `4.21` - **Override:** May be different based on severity and backport requirements ## Labels In addition to `ai-generated-jira` (from CNTRLPLANE skill), HyperShift issues may include: **Platform-specific:** - `aro-hcp` - ARO HCP specific - `rosa-hcp` - ROSA HCP specific **Feature area:** - `autoscaling` - `networking` - `observability` - `upgrade` - `lifecycle` **Priority/type:** - `technical-debt` - `security` - `performance` ## MCP Tool Integration ### For HyperShift Stories/Tasks in CNTRLPLANE ```python mcp__atlassian__jira_create_issue( project_key="CNTRLPLANE", summary="", issue_type="Story" | "Task" | "Epic" | "Feature", description="", components="HyperShift / ARO" | "HyperShift / ROSA" | "HyperShift", additional_fields={ "customfield_12319940": "openshift-4.21", # target version "labels": ["ai-generated-jira"], "security": {"name": "Red Hat Employee"} } ) ``` ### For HyperShift Bugs in OCPBUGS ```python mcp__atlassian__jira_create_issue( project_key="OCPBUGS", summary="", issue_type="Bug", description="", components="HyperShift / ARO" | "HyperShift / ROSA" | "HyperShift", additional_fields={ "versions": [{"name": "4.21"}], # affects version "customfield_12319940": "4.21", # target version "labels": ["ai-generated-jira"], "security": {"name": "Red Hat Employee"} } ) ``` ## Examples ### Example 1: ROSA HCP Story (Auto-Detection) **Input:** ```bash /jira:create story CNTRLPLANE "Enable automatic node pool scaling for ROSA HCP" ``` **Auto-detected:** - Component: **HyperShift / ROSA** (detected from "ROSA HCP") - Target Version: openshift-4.21 - Labels: ai-generated-jira - Security: Red Hat Employee **Interactive prompts:** - User story format (As a... I want... So that...) - Acceptance criteria **Result:** - Story created with HyperShift / ROSA component - All CNTRLPLANE conventions applied ### Example 2: ARO HCP Bug **Input:** ```bash /jira:create bug "ARO HCP control plane pods crash on upgrade" ``` **Auto-detected:** - Project: OCPBUGS (default for bugs) - Component: **HyperShift / ARO** (detected from "ARO HCP") - Affected Version: 4.21 (default, user can override) - Target Version: 4.21 - Labels: ai-generated-jira - Security: Red Hat Employee **Interactive prompts:** - Bug template sections **Result:** - Bug created in OCPBUGS with HyperShift / ARO component ### Example 3: Platform-Agnostic Epic **Input:** ```bash /jira:create epic CNTRLPLANE "Improve HyperShift operator observability" ``` **Auto-detected:** - Component: **HyperShift** (platform-agnostic, from "HyperShift operator") - Target Version: openshift-4.21 - Epic Name: Same as summary - Labels: ai-generated-jira - Security: Red Hat Employee **Interactive prompts:** - Epic objective and scope - Acceptance criteria **Result:** - Epic created with HyperShift component (not platform-specific) ### Example 4: Multi-Platform Feature **Input:** ```bash /jira:create feature CNTRLPLANE "Advanced observability for ROSA and ARO HCP" ``` **Auto-detected:** - Component: **HyperShift** (affects both platforms) - Target Version: openshift-4.21 - Labels: ai-generated-jira - Security: Red Hat Employee **Interactive prompts:** - Market problem - Strategic value - Success criteria - Epic breakdown **Result:** - Feature with HyperShift component (since it affects both platforms) ### Example 5: Uncertain Component (Prompts User) **Input:** ```bash /jira:create story CNTRLPLANE "Improve control plane pod scheduling" ``` **Detection:** Summary doesn't contain platform-specific keywords **Prompt:** ``` Which HyperShift platform does this issue affect? 1. HyperShift / ARO - for ARO HCP (Azure) issues 2. HyperShift / ROSA - for ROSA HCP (AWS) issues 3. HyperShift - for platform-agnostic issues or affects both Select (1-3): ``` **User selects:** 3 **Result:** - Component set to **HyperShift** ## Component Override User can override auto-detection using `--component` flag: ```bash # Override auto-detection /jira:create story CNTRLPLANE "Enable autoscaling for ROSA HCP" --component "HyperShift" ``` This will use "HyperShift" component instead of auto-detected "HyperShift / ROSA". ## Error Handling ### Invalid Component **Scenario:** User specifies component that's not a valid HyperShift component. **Action:** ``` Component "Networking" is not a valid HyperShift component. HyperShift issues must use one of: - HyperShift / ARO - HyperShift / ROSA - HyperShift Which component would you like to use? ``` ### Component Required but Missing **Scenario:** Component cannot be auto-detected and user didn't specify. **Action:** ``` HyperShift issues require a component. Which component? 1. HyperShift / ARO - for ARO HCP (Azure) issues 2. HyperShift / ROSA - for ROSA HCP (AWS) issues 3. HyperShift - for platform-agnostic issues Select (1-3): ``` ## Workflow Summary When creating a HyperShift issue: 1. ✅ **CNTRLPLANE skill loads** - Applies generic conventions (security, labels, versions) 2. ✅ **HyperShift skill loads** - Adds HyperShift-specific requirements 3. 🔍 **Auto-detect component** - Analyze summary/description for ARO/ROSA keywords 4. ⚙️ **Apply component:** - If auto-detected with high confidence → Use detected component - If uncertain → Prompt user for component selection - If `--component` flag provided → Use specified component (validate it's HyperShift) 5. 💬 **Interactive prompts** - Collect issue type-specific information 6. 🔒 **Security scan** - Validate no credentials/secrets 7. ✅ **Create issue** - Use MCP tool with HyperShift component 8. 📤 **Return result** - Issue key, URL, applied defaults (including component) ## Best Practices 1. **Include platform keywords in summary** - Makes auto-detection more accurate - ✅ "Enable autoscaling for ROSA HCP" - ❌ "Enable autoscaling" (unclear which platform) 2. **Be specific about platform when known** - If issue is ARO-specific, mention "ARO" or "Azure" in summary - If issue is ROSA-specific, mention "ROSA" or "AWS" in summary 3. **Use platform-agnostic component wisely** - Only use "HyperShift" (without /ARO or /ROSA) when issue truly affects all platforms - When in doubt, ask the team 4. **Component consistency within epic** - Stories within an epic should generally have the same component as the epic - Exception: Epic is platform-agnostic but stories target specific platforms ## See Also - `/jira:create` - Main command that invokes this skill - `cntrlplane` skill - Generic CNTRLPLANE/OCPBUGS conventions - HyperShift team documentation