원클릭으로
create-epic
// Implementation guide for creating Jira epics with proper scope and parent linking
// Implementation guide for creating Jira epics with proper scope and parent linking
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.
Jira conventions for the CNTRLPLANE project used by OpenShift teams
| name | create-epic |
| description | Implementation guide for creating Jira epics with proper scope and parent linking |
This skill provides implementation guidance for creating well-structured Jira epics that organize related stories and tasks into cohesive bodies of work.
This skill is automatically invoked by the /jira:create epic command to guide the epic creation process.
Reference Documentation:
| Field | ID | Type | Usage |
|---|---|---|---|
| Epic Name | customfield_10011 | String | Required for Epics; must match summary |
| Parent Link | customfield_10018 | String | Links Epic to parent Feature. Value = Feature issue key |
| Target Version | customfield_10855 | Array | Format: [{"id": "VERSION_ID"}] |
If creation fails with a 4xx error that specifically references customfield_10018 or customfield_10011 in the error response:
customfield_10018 to the parent Feature key via editJiraIssueIMPORTANT: Many Jira configurations require the epic name field to be set.
MCP Tool Handling:
The epic description should:
Good example:
Enable administrators to manage multiple hosted control plane clusters from a single observability dashboard.
This epic delivers unified metrics aggregation, alerting, and visualization across clusters, reducing the operational overhead of managing multiple cluster environments.
Target users: SREs, Platform administrators
Epic-level acceptance criteria define when the epic is complete:
Format:
## Epic Acceptance Criteria
- <High-level outcome 1>
- <High-level outcome 2>
- <High-level outcome 3>
Example:
## Epic Acceptance Criteria
- Administrators can view aggregated metrics from all clusters in a single dashboard
- Alert rules can be configured to fire based on cross-cluster conditions
- Historical metrics are retained for 30 days across all clusters
- Documentation is complete for multi-cluster setup and configuration
Characteristics:
Include timeframe information:
Example:
## Timeline
- Target: Q1 2025 / OpenShift 4.21
- Milestone 1: Metrics collection infrastructure (Sprint 1-2)
- Milestone 2: Dashboard and visualization (Sprint 3-4)
- Milestone 3: Alerting and historical data (Sprint 5-6)
If the epic belongs to a larger feature:
--parent flagExample:
## Parent Feature
This epic is part of [PROJ-100](https://redhat.atlassian.net/browse/PROJ-100) "Advanced cluster observability" and specifically addresses the multi-cluster aggregation capability.
When creating an epic, guide the user through:
Prompt: "What is the main objective or goal of this epic? What capability will it deliver?"
Helpful questions:
Example response:
Enable SREs to manage and monitor multiple ROSA HCP clusters from a unified observability dashboard, reducing the operational complexity of multi-cluster environments.
Prompt: "What is included in this epic? What is explicitly out of scope?"
Helpful questions:
Example response:
In scope:
- Metrics aggregation from multiple clusters
- Unified dashboard for cluster health
- Cross-cluster alerting
- 30-day historical metrics retention
Out of scope:
- Log aggregation (separate epic)
- Cost reporting (different feature)
- Support for non-HCP clusters (future work)
Prompt: "What are the high-level outcomes that define this epic as complete?"
Guidance:
Example response:
- SREs can view aggregated metrics from all managed clusters in one dashboard
- Alert rules can be defined for cross-cluster conditions (e.g., "any cluster CPU >80%")
- Historical metrics available for 30 days
- Configuration documented and tested
Prompt: "What is the target timeframe for this epic? (quarter, release, or estimated sprints)"
Example responses:
Prompt: "Is this epic part of a larger feature? If yes, provide the feature key."
If yes:
Before submitting the epic, validate:
Create epics via createJiraIssue with contentFormat: "markdown". Key parameters:
projectKey: e.g., "CNTRLPLANE"issueTypeName: "Epic"summary: epic summarydescription: formatted epic template (Markdown)additional_fields: must include "customfield_10011" (Epic Name, same as summary), "labels": ["ai-generated-jira"], "security": {"name": "Red Hat Employee"}When linking an epic to a parent feature, use Parent Link (customfield_10018) as a STRING value (the Feature issue key). Do NOT use Epic Link or the standard parent field.
Linking hierarchy:
customfield_10018) - value is a STRINGcustomfield_10014) - value is a STRINGUse Markdown formatting with contentFormat: "markdown":
<Epic objective - what capability will be delivered and why it matters>
## Epic Acceptance Criteria
- <High-level outcome 1>
- <High-level outcome 2>
- <High-level outcome 3>
## Scope
### In Scope
- <Functionality included in this epic>
- <Capabilities to be delivered>
### Out of Scope
- <Related work NOT in this epic>
- <Future considerations>
## Timeline
- Target: <quarter or release>
- Estimated: <sprints>
- Key milestones: <major deliverables>
## Target Users
- <User group 1>
- <User group 2>
## Dependencies (optional)
- [PROJ-XXX](https://redhat.atlassian.net/browse/PROJ-XXX) - <dependency description>
## Parent Feature (if applicable)
This epic is part of [PROJ-YYY](https://redhat.atlassian.net/browse/PROJ-YYY) "<feature name>" and addresses <how this epic contributes>.
Scenario: Epic creation fails due to missing epic name field.
Action:
customfield_10011 = summaryScenario: Epic seems too large (would take >1 quarter).
Action:
Example:
This epic seems quite large (estimated 12+ sprints). Consider:
Option 1: Split into multiple epics
- Epic 1: Core metrics aggregation (sprints 1-6)
- Epic 2: Advanced dashboards and alerting (sprints 7-12)
Option 2: Create as Feature instead
- This might be better as a Feature with multiple child Epics
Which would you prefer?
Scenario: Epic could be completed in one sprint.
Action:
Example:
This epic seems small enough to be a single Story (completable in one sprint).
Epics should typically:
- Span multiple sprints (2-8 sprints)
- Contain multiple stories
- Deliver a cohesive capability
Would you like to create this as a Story instead? (yes/no)
Scenario: User specifies parent, but it's not a Feature.
Action:
Example:
Parent issue PROJ-100 is an Epic, but epics should typically link to Features (not other Epics).
Options:
1. Link to the parent Feature instead (if PROJ-100 has a parent)
2. Proceed without parent link
3. Create a Feature first, then link this Epic to it
What would you like to do?
Scenario: User doesn't provide epic acceptance criteria.
Action:
Example:
Epic acceptance criteria help define when this epic is complete. Let's add some.
What are the key outcomes that must be achieved?
- What capabilities will exist when this epic is done?
- How will you demonstrate the epic is complete?
- What must work end-to-end?
Example: "Administrators can view aggregated metrics from all clusters"
Scenario: Sensitive data detected in epic content.
Action:
Scenario: MCP tool returns an error when creating the epic.
Action:
Common errors:
Input:
/jira:create epic CNTRLPLANE "Multi-cluster metrics aggregation" --parent CNTRLPLANE-100
Interactive prompts:
What is the main objective of this epic?
> Enable SREs to monitor multiple ROSA HCP clusters from one dashboard
What is included in scope?
> Metrics aggregation, unified dashboard, cross-cluster alerting, 30-day retention
What is out of scope?
> Log aggregation, cost reporting, non-HCP cluster support
Epic acceptance criteria?
> - View aggregated metrics from all clusters
> - Configure cross-cluster alerts
> - 30-day historical retention
> - Complete documentation
Timeframe?
> Q1 2025, estimate 6 sprints
Implementation:
additional_fields={
"customfield_10011": "Multi-cluster metrics aggregation", # Epic Name
"customfield_10018": "CNTRLPLANE-100", # Parent Link (STRING, not object!)
"labels": ["ai-generated-jira"],
"security": {"name": "Red Hat Employee"}
}
Result:
customfield_10018)Input:
/jira:create epic CNTRLPLANE "Advanced node pool autoscaling for ARO HCP"
Auto-applied (via cntrlplane skill):
Interactive prompts:
Result:
Input:
/jira:create epic MYPROJECT "Improve test coverage for API endpoints"
Result:
❌ Epic is actually a story
"As a user, I want to view a dashboard"
✅ Too small, create as Story instead
❌ Epic is actually a feature
"Complete observability platform redesign" (12 months, 50+ stories)
✅ Too large, create as Feature with child Epics
❌ Vague acceptance criteria
- Epic is done when everything works
✅ Be specific: "SREs can view metrics from 100+ clusters with <1s load time"
❌ Implementation details in AC
- Backend uses PostgreSQL for metrics storage
- API implements gRPC endpoints
✅ Focus on outcomes, not implementation
❌ No scope definition
Description: "Improve monitoring"
✅ Define what's included and what's not
/jira:create - Main command that invokes this skill (includes Issue Hierarchy and Parent Linking documentation)create-feature skill - For creating parent featurescreate-story skill - For stories within epics (uses Epic Link field, NOT parent field)cntrlplane skill - CNTRLPLANE specific conventions