plugins/jira/skills/gcp-hcp/SKILL.md
GCP HCP team-specific Jira requirements for creating issues in the GCP project (Hypershift on GKE)
npx skillsauth add openshift-eng/ai-helpers gcp-hcpInstall 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.
This skill provides GCP HCP (Hypershift on GKE) team-specific conventions for creating Jira issues in the GCP project.
This skill is automatically invoked when:
| Field | Value | |-------|-------| | Project Key | GCP | | Project Name | GCP Hosted Control Planes (Hypershift on GKE) | | Issue Types | Story, Epic, Task, Bug, Feature Request |
GCP project uses the same instance-wide custom fields as other Red Hat Jira projects:
| Field | Custom Field ID | Usage | Example |
|-------|-----------------|-------|---------|
| Epic Name | customfield_10011 | Required when creating Epics | "Multi-cluster metrics aggregation" |
| Epic Link | customfield_10014 | Link Story/Task → Epic | "GCP-456" |
| Parent Link | customfield_10018 | Link Epic → Feature | "GCP-100" |
| Story Points | customfield_10028 | Optional story point estimate | 3.0 |
| Blocked | customfield_10517 | Mark issue as blocked (dropdown) | {"value": "True"} |
The GCP project uses these components for organizing work:
| Component | Usage |
|-----------|-------|
| hypershift-operator-gcp | HyperShift operator, control plane components |
| gcp-hcp-automation | Terraform, ArgoCD, infrastructure automation |
| gcp-api-gateway | API gateway work |
| Retrospective action items | Team retrospective tracking |
Usage:
additional_fields (e.g., "components": [{"name": "HyperShift"}])Note: Always include contentFormat: "markdown" when calling createJiraIssue or editJiraIssue so descriptions are interpreted as Markdown.
Use createJiraIssue with contentFormat: "markdown" for all GCP project issues. The table below shows additional custom fields per issue type:
| Issue Type | Key Fields |
|---|---|
| Story / Task | customfield_10014 (Epic Link): parent epic key; customfield_10028 (Story Points): float, auto-estimated per Sizing Guide; priority: {"name": "Major"} (omit unless user specifies) |
| Epic | customfield_10011 (Epic Name): must match summary. Do NOT include parent link at creation time -- add it via a separate editJiraIssue call (see Epic Linking below). |
| Feature | No type-specific custom fields required. |
All issues include: "labels": ["ai-generated-jira"], "security": {"name": "Red Hat Employee"}, and contentFormat: "markdown".
GCP-HCP also uses:
customfield_10028 (Story Points): float value on Fibonacci scale (0, 1, 2, 3, 5, 8, 13)customfield_10517 (Blocked): {"value": "True"} when issue is blockedStory Points guidance: When creating a Story or Task, auto-estimate story points by analyzing the issue summary, description, and acceptance criteria against the Story Sizing Guide. Set customfield_10028 as a float (e.g. 3.0). Use the Fibonacci scale: 0, 1, 2, 3, 5, 8, 13. For estimates of 8 or higher, add a note in the description recommending the story be split into smaller items. The ai-generated-jira label (already applied) serves as an indicator that points were AI-estimated; the team reviews and adjusts estimates during refinement.
Priority guidance: Before creating an issue, ask the user if they want to set a specific priority: "Would you like to set a priority for this issue? The default is Normal." Reference the Priority Scheme (OJA-PRIS-001) below to guide the conversation. If yes, set priority as an object with name field (e.g. {"name": "Major"}). If no, omit the field to use the default.
When creating an Epic with a parent Feature:
createJiraIssue WITHOUT the parent link field.editJiraIssue to set customfield_10018 (Parent Link) to the Feature key (e.g. "GCP-100").The GCP HCP team maintains standardized templates and definitions to ensure consistent, high-quality JIRA tickets. All GCP project issues MUST conform to these standards.
When creating GCP project issues, follow the appropriate template structure below. The full template content is embedded here for reference; source URLs are provided for each template.
Source: jira-story-template.md
Required structure for all Stories:
As a [platform user/developer/operations team/end user] I want [goal/desire], so that [benefit/reason].
[Optional placeholder for another user story if this deliverable serves multiple users]
[Current state, problem being solved, relevant history, links to related tickets/incidents]
[Functional and non-functional requirements (performance, scalability, reliability, SLOs, compliance)]
[Proposed solution, technologies/tools, major steps, alternatives considered]
[Blocking items: other teams/stories, external vendors, infrastructure/access needs, required approvals]
[Any relevant background, links, screenshots, or technical notes]
Use this guide to estimate the size of a story during refinement. Story sizes reflect complexity, risk, and effort combined. Story points use the Fibonacci sequence (0, 1, 2, 3, 5, 8, 13) to reflect increasing uncertainty as size grows. Stories should typically be 1-5 points. Stories sized at 8+ should be split into smaller stories.
| Points | Description | |--------|-------------| | 0 | Rarely used. Trivial task with stakeholder value but less risk/complexity than a 1-pointer. Example: Update a README link. | | 1 | The smallest issue possible, everything scales from here. Can be a one-line change in code, a tedious but extremely simple task, etc. Basically, no risk, very low effort, very low complexity. | | 2 | Simple, well-understood change. Low risk, low complexity but slightly more effort than a 1. Some investigation into how to accomplish the task may be necessary. | | 3 | Doesn't have to be complex, but it is usually time consuming. The work should be fairly straightforward. There can be some minor risks. | | 5 | Requires investigation, design, discussions, collaboration. Can be time consuming or complex. Risks involved. | | 8 | Big task. Requires investigation, design, discussions, collaboration. Solution is challenging. Risks expected. Design doc required. Consider splitting into smaller stories. | | 13 | Do not use this size. If you ever see an issue that is this big, it must be split into smaller stories. |
1 Point Examples:
2 Point Examples:
3 Point Examples:
5 Point Examples:
8 Point Examples (Should be split):
Split a story if any of these apply:
By scope:
By layer:
By workflow step:
By component:
By risk:
When splitting a large story, consider these approaches:
Vertical slices: Each story delivers end-to-end value for a subset of functionality
Technical layers: Split by component or layer (use sparingly, prefer vertical slices)
Spike + Implementation: Separate research from execution
Incremental delivery: Build complexity over multiple stories
Source: jira-task-template.md
A finite piece of work to be completed. Great for tracking post-meeting follow-ups & action items. Fits within a single sprint.
Use a Task for:
Use a Story instead for:
[Why this work is needed, relevant history, links to meeting notes or related tickets]
[What needs to be delivered or accomplished]
[Proposed solution, major steps, or approach to completing this work]
[Blocking items: other tickets, required access/permissions, or external dependencies]
Source: jira-epic-template.md
Required structure for all Epics. Epics represent a cohesive chunk of work within a Feature that can typically be completed in 1-2 sprints and decomposes into multiple Stories.
Hierarchy: Feature → Epic → Story
[Action Verb] + [Specific Capability or Component]
Examples:
[Brief description of why this Epic is needed, what problem it solves, or what capability it enables]
[Describe the current state, limitations, or gaps that this Epic addresses]
Optional: Include technical details about current implementation, blockers, or constraints
[Describe what will be true when this Epic is complete]
This Epic covers:
Out of Scope (if applicable):
[Include relevant technical information such as:
Feature: [Parent Feature, if applicable] Assignee: [DRI for this Epic] Priority: [P0/P1/P2/P3] Sprint Target: [Target sprint(s) or quarter] Size Estimate: Small / Medium / Large
Source: jira-feature-template.md
Required structure for all Features. Features represent high-level capabilities that span multiple sprints and decompose into multiple Epics and Stories. Used during milestone and quarterly planning.
[Action Verb] + [Capability]
Example: "Implement Distributed Tracing for GCP HCP Services"
[Why this Feature is needed and how it supports overall goals (e.g., Q1 milestone, Zero Operator principles, customer requirements)]
What's Included:
What's NOT Included:
[High-level approach if decided, key technologies/patterns to use, or note "TBD during Epic breakdown"]
Epic(s): [To be created during breakdown] Priority: [Set during prioritization] Demo Critical: Yes/No Size Estimate: Small / Medium / Large DRI: [Directly Responsible Individual]
Source: definition-of-done.md
When generating issue descriptions for GCP project, ensure acceptance criteria align with the relevant Definition of Done below.
In addition to meeting the requirements and any acceptance criteria from the Jira ticket, the developer must be able to check off the following activities for the story to be considered "done":
Apply Priority according to priority scheme OJA-PRIS-001 (documented here):
Summary: Enable automated backups for GKE hosted control planes
Description:
As a cluster administrator, I want to enable automated backups for my GKE-hosted control planes, so that I can quickly recover from data loss or corruption.
Acceptance Criteria:
- Test that backups can be scheduled daily at a configurable time
- Test that backup retention policy is enforced (30 days default)
- Test that backups can be restored to the same or different GCP project
- Test that backup operations do not interrupt cluster operations
Project: GCP
Issue Type: Story
Component: (optional)
Parent: GCP-456 (Epic)
Story Points: 3.0
Priority: Major
Labels: ai-generated-jira
Summary: Multi-cluster monitoring and observability
Description:
Implement comprehensive monitoring and observability for GCP-hosted control planes across multiple GKE clusters, enabling operators to detect and respond to issues proactively.
## Scope
- Metrics collection from control plane pods
- Central metrics aggregation and storage
- Dashboards for monitoring cluster health
- Alerting framework for critical metrics
- Log aggregation and analysis
## Acceptance Criteria
- Test that metrics are collected from all control plane pods
- Test that metrics are available within 30 seconds of generation
- Test that dashboards accurately reflect cluster state
- Test that alerts fire within 2 minutes of anomaly detection
Project: GCP
Issue Type: Epic
Parent: GCP-100 (Feature)
Labels: ai-generated-jira
/jira:create command - Main Jira issue creation commandcntrlplane skill - CNTRLPLANE project conventions (similar structure)hypershift skill - HyperShift team conventions (on AWS/Azure)testing
Snapshot OpenShift payload data (release controller, PR diffs, comments, CI jobs, JUnit results, regression tracking) to a local directory for offline analysis
research
Shared engine for analyzing Jira issue activity and generating status summaries
tools
This skill should be used before any Snowflake command to verify MCP connectivity, guide users through access provisioning, and set the session context. Invoke this skill proactively whenever a command needs Snowflake data access.
development
Analyze a payload snapshot to identify root causes of blocking job failures, score candidate PRs, and produce an HTML report with revert recommendations