con un clic
con un clic
Safely query and report on OpenShift CI prow job and test data in BigQuery with cost controls, dry-run validation, and local caching of results
Analyze CVE reachability against downstream repository forks at version-specific release branches
Query and deduplicate open CVE vulnerability issues from OCPBUGS for Node team components
Generate triage reports and post findings to Jira and Slack
Categorize Jira issues into Red Hat Sankey Activity Type categories using MCP Jira tools. Supports single-issue and batch modes. Use when the user wants to categorize or set activity types on Jira issues, or mentions activity types, work types, Sankey, or capacity allocation.
Implementation guide for creating well-formed Jira bug reports
| name | cntrlplane |
| description | Jira conventions for the CNTRLPLANE project used by OpenShift teams |
This skill provides conventions and requirements for creating Jira issues in the CNTRLPLANE project, which is used by various OpenShift teams for feature development, epics, stories, and tasks.
Use this skill when creating Jira items in the CNTRLPLANE project:
This skill is automatically invoked by the /jira:create command when the project_key is "CNTRLPLANE".
Full name: Red Hat OpenShift Control Planes
Key: CNTRLPLANE
Used for: Features, Epics, Stories, Tasks, Spikes
Used by: Multiple OpenShift teams (HyperShift, Cluster Infrastructure, Networking, Storage, etc.)
Note: Universal requirements (Security Level: Red Hat Employee, Labels: ai-generated-jira) are defined in the /jira:create command and automatically applied to all tickets.
Status: OPTIONAL (many issues in CNTRLPLANE have null target version)
Recommendation: Prompt the user for target version if needed, rather than assuming a default.
Prompt: "Which OpenShift version should this target? (e.g., 4.22, openshift 4.22, OCP 4.22) or press Enter to skip"
Users may specify versions in various formats. Normalize all inputs to the Jira format openshift-X.Y:
| User Input | Normalized Output |
|---|---|
4.21 | openshift-4.21 |
4.22.0 | openshift-4.22 |
openshift 4.23 | openshift-4.23 |
openshift-4.21 | openshift-4.21 |
OCP 4.22 | openshift-4.22 |
ocp 4.21 | openshift-4.21 |
OpenShift 4.23 | openshift-4.23 |
Normalization rules:
If target version is set:
First, fetch available versions via getJiraIssueTypeMetaWithFields for the CNTRLPLANE project — the versions field's allowedValues contains valid version IDs.
Find the version ID for the normalized version name (e.g., "openshift-4.22")
Use correct MCP format (array of version objects with ID):
"customfield_10855": [{"id": "VERSION_ID"}] # e.g., openshift-4.22
IMPORTANT: Do NOT use string format like "openshift-4.22" - this will fail. Must use array with version ID.
Never set:
fixVersions) - This is managed by the release teamWhen user specifies a version (via --version flag or prompt):
openshift-X.Y format[{"id": "VERSION_ID"}]See: /jira:create command documentation for the complete "Issue Hierarchy and Parent Linking" reference, including field mapping, MCP code examples, and fallback strategies.
CNTRLPLANE uses different fields for different parent relationships:
| Creating | Parent Type | Field to Use | Value Format |
|---|---|---|---|
| Story | Epic | customfield_10014 (Epic Link) | "CNTRLPLANE-123" (string) |
| Task | Epic | customfield_10014 (Epic Link) | "CNTRLPLANE-123" (string) |
| Epic | Feature | customfield_10018 (Parent Link) | "CNTRLPLANE-123" (string) |
⚠️ CRITICAL:
customfield_10014)customfield_10018)parent field does NOT work| Field | Custom Field ID | Format |
|---|---|---|
| Epic Link (for stories/tasks) | customfield_10014 | String: "CNTRLPLANE-123" |
| Parent Link (for epics→features) | customfield_10018 | String: "CNTRLPLANE-123" |
| Epic Name (required for epics) | customfield_10011 | String: same as summary |
| Target Version | customfield_10855 | Array: [{"id": "12448830"}] |
Follow the implementation strategy documented in /jira:create command:
IMPORTANT: Component requirements are team-specific.
Some teams require specific components, while others do not. The CNTRLPLANE skill does NOT enforce component selection.
Team-specific component handling:
hypershift skill for component selectionIf component is not specified:
Note: Issue type templates and best practices are defined in type-specific skills (create-story, create-epic, create-feature, create-task).
--parent flag)customfield_epicname must be set (same value as summary)--parent flag)create-feature skill)--parent flag)Note: Security validation (credential scanning) is defined in the /jira:create command and automatically applied to all tickets.
Note: Always include contentFormat: "markdown" when calling createJiraIssue or editJiraIssue so descriptions are interpreted as Markdown.
Use createJiraIssue with contentFormat: "markdown" for all CNTRLPLANE issues. The table below shows additional custom fields per issue type:
| Issue Type | Key Fields |
|---|---|
| Story | customfield_10014 (Epic Link): parent epic key (optional) |
| Epic | customfield_10011 (Epic Name): must match summary; customfield_10018 (Parent Link): parent feature key (optional) |
| Feature | No type-specific custom fields required. Target version is optional. |
| Task | customfield_10014 (Epic Link): parent epic key (optional) |
All issues include: "labels": ["ai-generated-jira"], "security": {"name": "Red Hat Employee"}, contentFormat: "markdown", and target version via customfield_10855 when specified.
Note: If you need to link a task to a parent story, use Epic Link field (customfield_10014) with the story key.
Note: Detailed prompts for each issue type are defined in type-specific skills (create-story, create-epic, create-feature, create-task).
CNTRLPLANE-specific prompts:
Note: All examples automatically apply universal requirements (Security: Red Hat Employee, Labels: ai-generated-jira) as defined in /jira:create command.
/jira:create story CNTRLPLANE "Enable pod disruption budgets for control plane"
Prompts:
create-story skill for story-specific prompts/jira:create epic CNTRLPLANE "Improve cluster lifecycle management"
CNTRLPLANE-specific requirements:
Prompts:
create-epic skill for epic-specific prompts/jira:create feature CNTRLPLANE "Advanced observability capabilities"
Prompts:
create-feature skill for feature-specific prompts/jira:create task CNTRLPLANE "Refactor cluster controller reconciliation logic"
Prompts:
create-task skill for task-specific promptsScenario: User specifies a version that doesn't exist.
Action:
getJiraIssueTypeMetaWithFieldsScenario: Team requires component, but user didn't specify.
Action:
Scenario: Credentials or secrets found in description.
Action:
Scenario: User specifies --parent CNTRLPLANE-999 but issue doesn't exist.
Action:
getJiraIssueScenario: MCP tool returns an error.
Action:
Scenario: User tries to create a bug in CNTRLPLANE.
Action:
Note: Jira descriptions use Markdown (contentFormat: "markdown"). Formatting conventions are defined in the /jira:create command.
Teams using CNTRLPLANE may have additional team-specific requirements defined in separate skills:
hypershift skill for component selection (HyperShift / ARO, HyperShift / ROSA, HyperShift)Team-specific skills are invoked automatically when team keywords are detected in the summary or when specific components are mentioned.
When /jira:create is invoked for CNTRLPLANE:
hypershift)Note: Universal requirements (security, labels), security validation, and issue creation handled by /jira:create command.
--parent flagNote: Universal best practices (security, labels, formatting, credential scanning) are defined in the /jira:create command.
/jira:create - Main command that invokes this skill (includes Issue Hierarchy and Parent Linking documentation)ocpbugs skill - For OCPBUGS bugshypershift) - For team-specific conventions