Create Jira Bug
About
This Claude Skill provides implementation guidance for creating well-structured Jira bug reports through the `/jira:create bug` command. It helps developers generate complete bug reports with clear descriptions, reproduction steps, and actual vs expected results. The skill requires Jira server access and user permissions to create issues in target projects.
Quick Install
Claude Code
Recommended/plugin add https://github.com/openshift-eng/ai-helpersgit clone https://github.com/openshift-eng/ai-helpers.git ~/.claude/skills/Create Jira BugCopy and paste this command in Claude Code to install this skill
Documentation
Create Jira Bug
This skill provides implementation guidance for creating well-structured Jira bug reports with complete reproduction steps and clear problem descriptions.
When to Use This Skill
This skill is automatically invoked by the /jira:create bug command to guide the bug creation process.
Prerequisites
- MCP Jira server configured and accessible
- User has permissions to create issues in the target project
- Bug information available (problem description, steps to reproduce, etc.)
Bug Report Best Practices
Complete Information
A good bug report contains:
- Clear summary - Brief description that identifies the problem
- Detailed description - Complete context and background
- Reproducibility - How often the bug occurs
- Steps to reproduce - Exact sequence to trigger the bug
- Actual vs expected results - What happens vs what should happen
- Environment details - Version, platform, configuration
- Additional context - Logs, screenshots, error messages
Summary Guidelines
The summary should:
- Be concise (one sentence)
- Identify the problem clearly
- Include key context when helpful
- Avoid vague terms like "broken" or "doesn't work"
Good examples:
- "API server returns 500 error when creating namespaces"
- "Control plane pods crash on upgrade from 4.20 to 4.21"
- "Memory leak in etcd container after 24 hours"
Bad examples:
- "Things are broken"
- "Error in production"
- "Fix the bug"
Bug Description Template
Use this template structure for consistency:
Description of problem:
<Clear, detailed description of the issue>
Version-Release number of selected component (if applicable):
<e.g., 4.21.0, openshift-client-4.20.5>
How reproducible:
<Always | Sometimes | Rarely>
Steps to Reproduce:
1. <First step - be specific>
2. <Second step>
3. <Third step>
Actual results:
<What actually happens - include error messages>
Expected results:
<What should happen instead>
Additional info:
<Logs, screenshots, stack traces, related issues, workarounds>
Interactive Bug Collection Workflow
When creating a bug, guide the user through each section interactively:
1. Problem Description
Prompt: "What is the problem? Describe it clearly and in detail."
Tips to share:
- Provide context: What were you trying to do?
- Be specific: What component or feature is affected?
- Include impact: Who is affected? How severe is it?
Example response:
The kube-apiserver pod crashes immediately after upgrading a hosted control plane cluster from version 4.20 to 4.21. The pod enters CrashLoopBackOff state and all API requests to the cluster fail.
2. Version Information
Prompt: "Which version exhibits this issue? (e.g., 4.21.0, 4.20.5)"
Tips:
- Include full version number if known
- Specify component version if different from platform version
- Note if issue affects multiple versions
Default: Use project-specific default (e.g., 4.21 for OCPBUGS)
3. Reproducibility
Prompt: "How reproducible is this issue?"
Options:
- Always - Happens every time following the steps
- Sometimes - Happens intermittently, even with same steps
- Rarely - Hard to reproduce, happened once or few times
Use case for each:
- Always: Easiest to debug and fix
- Sometimes: May be timing-related or race condition
- Rarely: May be environmental or complex interaction
4. Steps to Reproduce
Prompt: "What are the exact steps to reproduce this issue? Be as specific as possible."
Guidelines:
- Number each step
- Be precise (exact commands, button clicks, inputs)
- Include environment setup if needed
- Use code blocks for commands
- Mention any prerequisites
Example:
Steps to Reproduce:
1. Create a ROSA HCP cluster on version 4.20.0:
rosa create cluster --name test-cluster --version 4.20.0 --hosted-cp
2. Wait for cluster to be fully ready (about 15 minutes)
3. Initiate upgrade to 4.21.0:
rosa upgrade cluster --cluster test-cluster --version 4.21.0
4. Monitor the control plane pods:
oc get pods -n clusters-test-cluster -w
5. Observe kube-apiserver pod status
Validation:
- Ensure at least one step is provided
- Check that steps are numbered/ordered
- Verify steps are specific enough to follow
5. Actual Results
Prompt: "What actually happens when you follow those steps?"
Guidelines:
- Describe exactly what occurs
- Include error messages (full text)
- Mention symptoms (crashes, hangs, wrong output)
- Include relevant logs or stack traces
- Note timing (immediate, after 5 minutes, etc.)
Example:
Actual results:
The kube-apiserver pod crashes immediately after the upgrade completes. The pod restarts continuously (CrashLoopBackOff). Error in pod logs:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x...]
API requests to the cluster fail with:
Error from server: error dialing backend: dial tcp: lookup kube-apiserver: no such host
6. Expected Results
Prompt: "What should happen instead? What is the expected behavior?"
Guidelines:
- Describe the correct behavior
- Be specific about expected state/output
- Contrast with actual results
Example:
Expected results:
The kube-apiserver pod should start successfully after the upgrade. The pod should be in Running state, and API requests to the cluster should succeed normally.
Validation:
- Ensure expected results differ from actual results
- Check that expected behavior is clearly stated
7. Additional Information
Prompt: "Any additional context? (Optional: logs, screenshots, workarounds, related issues)"
Helpful additions:
- Full logs or log excerpts
- Screenshots or recordings
- Stack traces
- Related Jira issues or documentation
- Workarounds discovered
- Impact assessment (severity, affected users)
- Environment specifics (region, network config, etc.)
Example:
Additional info:
- Cluster ID: abc123-def456
- Region: us-east-1
- Full pod logs attached: kube-apiserver.log
- Related issue: OCPBUGS-12340 (similar crash in 4.19→4.20 upgrade)
- Workaround: Rollback to 4.20.0 and cluster recovers
- Affects all ROSA HCP clusters in production
Component and Version Handling
Auto-Detection
Analyze the bug description for component hints:
- Product names: "OpenShift", "ROSA", "ARO", "HyperShift"
- Component names: "API server", "etcd", "networking", "storage"
- Platform: "AWS", "Azure", "GCP", "bare metal"
Version Fields
Different projects may use versions differently:
OCPBUGS:
- Affects Version/s (
versions): Version where bug was found - Target Version (
customfield_12319940): Version where fix is targeted - Never set Fix Version/s (
fixVersions)
General projects:
- May only have Affects Version/s
- Check project configuration for version fields
Project-Specific Overrides
If bug is for a known project with specific conventions (e.g., CNTRLPLANE/OCPBUGS), the cntrlplane skill will be invoked automatically and will override defaults.
Field Validation
Before submitting the bug, validate:
Required Fields
- ✅ Summary is not empty and is clear
- ✅ Description contains problem description
- ✅ Component is specified (or project doesn't require it)
- ✅ Affects version is specified (if required by project)
Description Quality
- ✅ "Steps to Reproduce" has at least one step
- ✅ "Actual results" is different from "Expected results"
- ✅ "How reproducible" is specified (Always/Sometimes/Rarely)
Security
- ✅ No credentials, API keys, or secrets in any field
- ✅ Logs are sanitized (passwords, tokens redacted)
- ✅ Screenshots don't expose sensitive information
MCP Tool Parameters
Basic Bug Creation
mcp__atlassian__jira_create_issue(
project_key="<PROJECT_KEY>", # e.g., "OCPBUGS", "MYPROJECT"
summary="<bug summary>",
issue_type="Bug",
description="<formatted bug template>",
components="<component name>", # optional, if required by project
additional_fields={
"versions": [{"name": "<version>"}], # affects version, if supported
# Add other project-specific fields as needed
}
)
With Project-Specific Fields (e.g., OCPBUGS)
mcp__atlassian__jira_create_issue(
project_key="OCPBUGS",
summary="Control plane pods crash on upgrade",
issue_type="Bug",
description="""
h2. Description of problem
Control plane pods crash immediately after upgrading from 4.20 to 4.21.
h2. Version-Release number
4.21.0
h2. How reproducible
Always
h2. Steps to Reproduce
# Create a cluster on 4.20
# Upgrade to 4.21
# Observe control plane pod status
h2. Actual results
Pods enter CrashLoopBackOff state.
h2. Expected results
Pods should start successfully.
h2. Additional info
Logs attached.
""",
components="HyperShift",
additional_fields={
"versions": [{"name": "4.21"}], # affects version
"customfield_12319940": "4.21", # target version
"labels": ["ai-generated-jira"],
"security": {"name": "Red Hat Employee"} # if required
}
)
Jira Description Formatting
Use Jira's native formatting (Wiki markup):
Headings
h1. Main Heading
h2. Subheading
h3. Sub-subheading
Text Formatting
*bold text*
_italic text_
{{monospace}}
{quote}quoted text{quote}
Lists
* Bullet item 1
* Bullet item 2
** Nested bullet
# Numbered item 1
# Numbered item 2
Code Blocks
{code}
command line text or code
{code}
{code:java}
// Language-specific syntax highlighting
public class Example {}
{code}
Links
[Link text|http://example.com]
[OCPBUGS-123] // Auto-links to Jira issue
Error Handling
Missing Required Information
Scenario: User doesn't provide required fields.
Action:
- Identify missing required fields
- Prompt user for each missing field
- Provide context/examples to help
- Re-validate before submission
Example:
Summary is required but not provided. Please provide a brief summary of the bug:
Example: "API server crashes when creating namespaces"
Invalid Version
Scenario: Specified version doesn't exist in project.
Action:
- Use
mcp__atlassian__jira_get_project_versionsto fetch valid versions - Suggest closest match or list available versions
- Ask user to confirm or select different version
Example:
Version "4.21.5" not found for project OCPBUGS.
Available versions: 4.19, 4.20, 4.21, 4.22
Did you mean "4.21"?
Component Required But Not Provided
Scenario: Project requires component, but none specified.
Action:
- Ask user which component the bug affects
- If available, fetch and display component list for project
- Accept user's component selection
- Validate component exists before submission
Security Validation Failure
Scenario: Sensitive data detected in bug content.
Action:
- STOP submission immediately
- Inform user what type of data was detected (without echoing it)
- Provide guidance on redaction
- Request sanitized version
Example:
I detected what appears to be an API token in the "Steps to Reproduce" section.
Please replace with a placeholder like "YOUR_API_TOKEN" or "<redacted>" before proceeding.
MCP Tool Error
Scenario: MCP tool returns an error when creating the bug.
Action:
- Parse error message
- Translate to user-friendly explanation
- Suggest corrective action
- Offer to retry
Common errors:
- "Field 'component' is required" → Prompt for component
- "Version not found" → Use version error handling
- "Permission denied" → User may lack project permissions, inform them to contact admin
Examples
Example 1: Simple Bug
Input:
/jira:create bug MYPROJECT "Login button doesn't work on mobile"
Interactive prompts:
What is the problem? Describe it clearly.
> The login button on the mobile app doesn't respond to taps on iOS devices.
Which version exhibits this issue?
> 2.1.0
How reproducible is this issue?
> Always
What are the exact steps to reproduce?
> 1. Open mobile app on iPhone 13 (iOS 16.5)
> 2. Navigate to login screen
> 3. Tap the "Login" button
> 4. Nothing happens
What actually happens?
> The button doesn't respond to taps. No visual feedback, no navigation.
What should happen instead?
> The button should navigate to the credentials input screen when tapped.
Any additional context?
> Works fine on Android. Only affects iOS.
Result:
- Issue created in MYPROJECT
- Type: Bug
- Summary: "Login button doesn't work on mobile"
- Description: Formatted with bug template
Example 2: Bug with Auto-Detection (CNTRLPLANE/OCPBUGS)
Input:
/jira:create bug "ROSA HCP control plane pods crash on upgrade"
Auto-applied (via cntrlplane skill):
- Project: OCPBUGS (default for bugs)
- Component: HyperShift / ROSA (detected from "ROSA HCP")
- Affects Version: 4.21
- Target Version: 4.21
- Labels: ai-generated-jira
- Security: Red Hat Employee
Interactive prompts:
- Bug template sections (same as Example 1)
Result:
- Full bug report created with all CNTRLPLANE conventions applied
Example 3: Bug with All Fields Provided
Input:
/jira:create bug OCPBUGS "etcd pod OOMKilled after 48 hours" --component "HyperShift" --version "4.21"
Minimal prompts:
- Description of problem
- Steps to reproduce
- Actual/expected results
- Additional info
Result:
- Bug created with provided component and version
- Only prompts for description content
Best Practices Summary
- Clear summaries: One sentence, specific problem
- Complete steps: Exact sequence to reproduce
- Specific results: Include error messages and symptoms
- Sanitize content: Remove all credentials and secrets
- Add context: Logs, environment details, workarounds
- Use template: Follow standard bug template structure
- Validate before submit: Check all required fields populated
Workflow Summary
- ✅ Parse command arguments (project, summary, flags)
- 🔍 Auto-detect component/version from summary keywords
- ⚙️ Apply project-specific defaults (if applicable)
- 💬 Interactively collect bug template sections
- 🔒 Scan for sensitive data
- ✅ Validate required fields
- 📝 Format description with Jira markup
- ✅ Create bug via MCP tool
- 📤 Return issue key and URL
See Also
/jira:create- Main command that invokes this skillcntrlplaneskill - CNTRLPLANE/OCPBUGS specific conventions- Jira documentation on bug workflows
GitHub Repository
Related Skills
langchain
MetaLangChain is a framework for building LLM applications using agents, chains, and RAG pipelines. It supports multiple LLM providers, offers 500+ integrations, and includes features like tool calling and memory management. Use it for rapid prototyping and deploying production systems like chatbots, autonomous agents, and question-answering services.
Algorithmic Art Generation
MetaThis skill helps developers create algorithmic art using p5.js, focusing on generative art, computational aesthetics, and interactive visualizations. It automatically activates for topics like "generative art" or "p5.js visualization" and guides you through creating unique algorithms with features like seeded randomness, flow fields, and particle systems. Use it when you need to build reproducible, code-driven artistic patterns.
webapp-testing
TestingThis Claude Skill provides a Playwright-based toolkit for testing local web applications through Python scripts. It enables frontend verification, UI debugging, screenshot capture, and log viewing while managing server lifecycles. Use it for browser automation tasks but run scripts directly rather than reading their source code to avoid context pollution.
requesting-code-review
DesignThis skill dispatches a code-reviewer subagent to analyze code changes against requirements before proceeding. It should be used after completing tasks, implementing major features, or before merging to main. The review helps catch issues early by comparing the current implementation with the original plan.
