원클릭으로
원클릭으로
Analyze OpenShift operator API changes to predict regressions, breaking changes, and backward compatibility issues
Generate e2e test artifacts for any OpenShift operator based on repository discovery and git diff analysis
| name | Analyze RFE |
| description | Analyze RFEs and generate EPIC, user stories, and outcomes breakdown |
Implementation guidance for /oape:analyze-rfe. When invoked, execute the steps below.
JIRA_PERSONAL_TOKEN set (and optionally JIRA_URL, default https://issues.redhat.com). If unset, prompt the user and exit.RFE-7841) or Jira URL. Extract key from URL if needed (e.g. https://issues.redhat.com/browse/RFE-7841 → RFE-7841).gh authenticated (gh auth login). Used by gather_component_context.py (which calls github_pr_analyzer.py and related scripts).python3 plugins/oape/skills/analyze-rfe/scripts/fetch_rfe.py {issue_key}
Script requires JIRA_PERSONAL_TOKEN and pip install requests. It prints JSON to stdout and clear errors to stderr.curl -sS -H "Authorization: Bearer $JIRA_PERSONAL_TOKEN" \
-H "Accept: application/json" \
"$JIRA_URL/rest/api/2/issue/{key}?fields=summary,description,components,labels,status,issuetype"
From the description (strip Jira wiki markup), extract:
Note missing sections; still proceed with available content.
Extract component names from RFE (from Jira components field and description).
Extract keywords from RFE description, summary, and desired behavior for PR search.
For each affected component, run the component context gatherer with PR analysis:
python3 plugins/oape/skills/analyze-rfe/scripts/gather_component_context.py <component-name> \
--keywords "keyword1" "keyword2" "keyword3" \
--max-prs 50 \
--deep-dive 3 \
--analyze-upstream \
--analyze-operands \
-o .work/jira/analyze-rfe/<rfe-key>/component-<component-name>-context.md
What this does:
openshift/cert-manager-operator)cert-manager/cert-manager).work/jira/analyze-rfe/cache/ for performancePrerequisites: gh CLI authenticated (gh auth login). If gh is not available, log a warning and skip PR analysis (generate basic context only).
Fallback: Search workspace for **/context.md files if script-based analysis fails.
Synthesize: Merge PR insights, repo structure, and context.md data into the final report.
Use in output: Include "Component Context & Historical PR Analysis" section with:
# RFE Analysis: [KEY] - [Title]
## RFE Summary
| Field | Value |
|-------|-------|
| **Source** | [link] |
| **Key Capability** | ... |
| **Business Driver** | ... |
| **Affected Components** | ... |
## Component Context & Historic PR Analysis
[For each affected component]
### Component: [Component Name]
**Repositories**:
- Downstream: openshift/[repo-name]
- Upstream: [upstream-org/repo-name] (if applicable)
- Operands: [operand repos] (if operator)
**Architecture**: [Operator/CLI/Library/Service]
**Key Implementation Patterns** (from historic PRs):
1. [Pattern 1 from PR analysis]
2. [Pattern 2 from PR analysis]
**Relevant Historic PRs**:
- **PR #[number]** ([date]): [Title]
- **Design Insight**: [What was designed and why]
- **Scope**: [S/M/L - files changed]
- **Relevance**: [Why this matters for current RFE]
**Upstream vs Downstream** (if upstream analyzed):
- [Key differences in architecture, features, or approach]
**Risk Factors**:
- [Risks identified from PR analysis and codebase structure]
- **Mitigation**: [Recommendations]
**Recommended Implementation Approach**:
- [Based on historic patterns and lessons learned]
## EPIC(s)
### EPIC 1: [Title]
**Objective**: ...
**Scope**: In scope / Out of scope
**Acceptance Criteria**: ...
## User Stories
### Epic 1 → Story 1.1: [Title]
**User Story**: As a ... I want ... So that ...
**Acceptance Criteria**: ...
**Outcome**: ...
## Outcomes Summary
| Story | Outcome |
...
---
*Generated by `/oape:analyze-rfe` on [timestamp]*
.work/jira/analyze-rfe/<rfe-key>/breakdown.md (create directory if needed).JIRA_PERSONAL_TOKEN; exit.