plugins/jira/skills/create/SKILL.md
Create Jira issues — story, bug, epic, feature, initiative, task, or feature-request — with CNTRLPLANE, OCPBUGS, GCP, HyperShift, ARO, ROSA conventions and type-specific templates
npx skillsauth add openshift-eng/ai-helpers createInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/jira:create <type> [project-key] <summary> [--component <name>] [--version <version>] [--parent <key>]
Creates Jira issues following best practices and team-specific conventions. Supports stories, epics, features, initiatives, tasks, bugs, and feature requests with intelligent defaults, interactive prompts, and validation.
Load the reference file matching the issue type for templates, interactive workflows, and best practices:
| Type | Reference | Key Content | |---|---|---| | story | Story guide | User story format, acceptance criteria, summary vs description | | bug | Bug guide | Bug template, steps to reproduce, reproducibility | | epic | Epic guide | Epic Name field, scope/timeline, parent Feature linking | | feature | Feature guide | Market problem, strategic value, success criteria | | initiative | Initiative guide | Internal capability, problem statement, internal impact | | task | Task guide | Task vs story distinction, action-verb summaries | | feature-request | Feature Request guide | RFE project, 4-question workflow, business requirements |
Also load Markdown for Jira for description formatting.
story | epic | feature | initiative | task | bug | feature-requestCNTRLPLANE, OCPBUGS, RFE. Default for bugs: OCPBUGS. Default for feature-requests: RFE."Enable automatic scaling"openshift-X.Y per project conventions.CNTRLPLANE-123).jira:jira-conventions skill when the project key, component, or summary keywords match a known project or teamParse required and optional arguments. Analyze summary text for context clues (team, component, platform keywords).
Universal requirements (ALL tickets):
"labels": ["ai-generated-jira"]
"security": {"name": "Red Hat Employee"}
contentFormat: "markdown"
Project and team defaults (version, component, labels) come from the jira-conventions skill.
Follow the type-specific reference file's interactive workflow to collect missing information (story format, bug template sections, epic scope, etc.).
Check for anti-patterns before creation:
If detected:
The summary looks like a full user story. Summaries should be concise titles.
Current: "As a cluster admin, I want to configure ImageTagMirrorSet in HostedCluster CRs so that I can enable tag-based image proxying"
Suggested: "Enable ImageTagMirrorSet configuration in HostedCluster CRs"
Use the suggested summary? (yes/no/edit)
Scan all content (summary, description) for sensitive data:
If detected: STOP creation, inform user of the type found (without echoing it), suggest placeholder values.
Use createJiraIssue with collected parameters. Include universal fields and any project/team-specific fields.
Created: PROJECT-1234
Title: <issue summary>
URL: <issue URL>
Applied defaults:
- <Field>: <Value>
| Field | ID | Type | Usage |
|---|---|---|---|
| Epic Name | customfield_10011 | String | Required for Epics; must match summary |
| Target Version | customfield_10855 | Array | Format: [{"id": "VERSION_ID"}] — fetch via getJiraIssueTypeMetaWithFields. Some projects use string format; project conventions take precedence |
Jira issue types have a hierarchyLevel that determines valid parent-child relationships. The parent field only accepts an issue whose hierarchyLevel is exactly one level above the child. Not all projects have all levels — use getJiraProjectIssueTypesMetadata to discover available types and their levels for a given project.
Level 3: Outcome
Level 2: Feature / Initiative
Level 1: Epic
Level 0: Story / Task / Bug
Level -1: Sub-task
Use {"parent": {"key": "PARENT-KEY"}} in additional_fields for all parent-child relationships (Story→Epic, Task→Epic, Bug→Epic, Epic→Feature, Epic→Initiative, Feature→Outcome, Initiative→Outcome).
--parent is provided)Fetch the parent via getJiraIssue to verify it exists and its type matches the hierarchy:
| Creating | Parent Should Be | If Wrong Type | |----------|------------------|---------------| | Story | Epic | Warn user, ask to confirm or correct | | Task | Epic | Warn user, ask to confirm or correct | | Bug | Epic | Warn user, ask to confirm or correct | | Epic | Feature or Initiative | Warn user, ask to confirm or correct | | Feature | Outcome | Warn user, ask to confirm or correct | | Initiative | Outcome | Warn user, ask to confirm or correct |
If parent not found, offer options: proceed without parent, specify different parent, or cancel.
If creation fails with a parent-related error, create without the parent and link via editJiraIssue with {"parent": {"key": "PARENT-KEY"}}.
When changing an existing issue's type to a different hierarchy level, the current parent may become invalid. Jira validates the one-level-higher constraint on every edit, so you must change the parent and type in separate steps:
editJiraIssue with {"parent": null}editJiraIssue with {"issuetype": {"name": "NewType"}}editJiraIssue with {"parent": {"key": "NEW-PARENT"}}Invalid issue type "stroy". Valid types: story, epic, feature, initiative, task, bug, feature-request
Did you mean "story"?
Project key is required for stories/tasks/epics/features/initiatives.
Usage: /jira:create story PROJECT-KEY "summary"
| Field | Wrong | Correct |
|---|---|---|
| Target Version | "customfield_10855": "openshift-4.21" | "customfield_10855": [{"id": "12448830"}] |
| Component | "components": "Name" | "components": [{"name": "Name"}] |
/jira:create story CNTRLPLANE "Add user dashboard"
/jira:create story CNTRLPLANE "Add search" --component "Frontend" --version "4.22"
/jira:create epic CNTRLPLANE "Mobile redesign" --parent CNTRLPLANE-100
/jira:create bug "API returns 500 error" --component "Backend"
/jira:create task CNTRLPLANE "Update API docs" --parent CNTRLPLANE-456
/jira:create feature CNTRLPLANE "Advanced search capabilities"
/jira:create initiative GCP "Establish performance testing infrastructure"
/jira:create feature-request RFE "Support custom SSL certificates for ROSA HCP"
The jira-conventions skill automatically detects and applies conventions:
To add conventions for your project, create a reference file at plugins/jira/reference/your-project.md and add a routing entry to plugins/jira/skills/jira-conventions/SKILL.md.
--component and --version flags when known to skip prompts--parent to maintain issue hierarchy/jira:create story "Refactor database" → technical work, use task/jira:create bug "Something is broken" → be specificYOUR_API_KEYtools
Analyze a JIRA issue and create a pull request to solve it. Use when the user wants to implement a fix or feature described in a Jira issue, push a branch, and open a draft PR.
development
Use when a deeper level of code review is requested. Multi-agent panel code review with specialist reviewers and forced runtime reproducers for all BLOCKING bug findings. Optionally posts to GitHub/GitLab as a PENDING review.
development
Review agentic documentation — verify claims locally against source code first, then use chai-bot for cross-repo and cross-functional verification
development
Use this skill when debugging a failed Prow CI job.