From rfe
Analyze RFEs to identify themes by component and recommend combined efforts. Triggers on: /rfe:analyze, "analyze RFEs", "RFE themes", "theme analysis"
How this skill is triggered — by the user, by Claude, or both
Slash command
/rfe:analyze [period:<months>] [component:<name>] [status:<value>][period:<months>] [component:<name>] [status:<value>]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You help the user identify patterns and themes across RFEs — clusters of Feature Requests that address the same underlying capability and could be satisfied by a coordinated Feature set. This surfaces opportunities for combined engineering effort.
You help the user identify patterns and themes across RFEs — clusters of Feature Requests that address the same underlying capability and could be satisfied by a coordinated Feature set. This surfaces opportunities for combined engineering effort.
Read ../triage/references/rfe-jql-patterns.md now. It contains the base JQL, verified status values, and field reference.
Parse the arguments provided by the user. Recognized arguments:
| Argument | Example | Effect |
|---|---|---|
period:<months> | period:12 | Time window in months (default 18); converted to days |
component:<name> | component:ROSA | Restrict to a single component |
status:<value> | status:Approved | Restrict by workflow status |
Defaults:
period = 18 months → 548 daysAND status not in ("Closed"))Build the JQL:
Start from the base query in ../triage/references/rfe-jql-patterns.md:
project = RFE AND issuetype = "Feature Request"
Append clauses in this order:
AND status not in ("Closed") (always, unless status: overrides it)AND (created >= -<days>d OR updated >= -<days>d)AND component = "<name>" (if provided)Order by: ORDER BY component ASC, votes DESC
Example for default run:
project = RFE AND issuetype = "Feature Request"
AND status not in ("Closed")
AND (created >= -548d OR updated >= -548d)
ORDER BY component ASC, votes DESC
Fetch all matching RFEs using acli:
acli jira workitem search --jql "<BUILT JQL>" --json --paginate
WARNING: Do NOT use restricted fields (like
components,created,updated,parent, etc.) in the--fieldsargument. Theaclitool has a strict allowlist and will fail with a "field not allowed" error. Rely on the default JSON output instead.
Parse the acli JSON output. Each issue includes: key, summary, status, priority, votes, components, labels, created, updated, description, issuelinks. Derive coverage from issuelinks (Feature-type links present/absent, and whether the RFE itself is closed).
If the total exceeds 500 results, warn the user before proceeding:
Warning: This query matched <N> RFEs — analysis will take longer and results
may be harder to navigate. Consider narrowing with:
component:<name> to focus on one product area
period:6 to shorten the time window
status:Approved to focus on highest-priority open RFEs
Proceed with full analysis? (y/n)
If the user declines, re-enter Phase 1 with updated filters.
Read all JSONL output. Perform the following analysis:
For each distinct component value in the data, compute:
votes valuesnone (no Feature links) vs partial (has Feature links, treating decomposed the same as partial since the query excludes closed RFEs)RFEs with multiple components should appear in each component's group. RFEs with no component go into an "Unassigned" group.
Within each component, cluster RFEs by shared capability. Use summary and description (truncated at 500 chars) to identify clusters.
A theme = 2 or more RFEs that address the same capability and could plausibly be satisfied by a single coordinated Feature (or small Feature set). Look for:
For each theme, record:
After per-component analysis, look for themes that span multiple components — RFEs in different components that address the same capability from different product angles (e.g., "networking improvements" requested separately in ROSA, HyperShift, and MCE).
Identify RFEs that are not part of any theme but are individually significant:
Output a structured markdown report with the following sections:
A summary table across all components:
| Component | RFEs | Critical | Major | Minor | Total Votes | No Features | Has Features |
|-------------|------|----------|-------|-------|-------------|-------------|--------------|
| ROSA | 42 | 5 | 18 | 19 | 287 | 28 | 14 |
| HyperShift | 31 | 3 | 12 | 16 | 198 | 19 | 12 |
| ... | | | | | | | |
| **Total** | xxx | xx | xx | xx | xxx | xxx | xxx |
"No Features" = coverage == "none". "Has Features" = coverage == "partial" or "decomposed" (both indicate Feature links exist; decomposed is not separately shown since the query excludes closed RFEs).
For each component with at least one theme, list themes in descending combined-vote order:
## ROSA
### Theme: Auto-scaling for managed clusters
**RFEs:** RFE-1234, RFE-5678, RFE-9012
**Combined votes:** 34 | **Priority floor:** Critical | **Coverage:** none
**Rationale:** Three separate RFEs request dynamic node scaling based on workload metrics,
differing only in trigger mechanism (CPU, memory, custom metrics). A single Feature
covering the scaling framework would address all three.
### Theme: ...
## Cross-Component: Observability & Metrics
**Components involved:** ROSA, HyperShift, MCE
**RFEs:** RFE-2345 (ROSA), RFE-6789 (HyperShift), RFE-3456 (MCE)
**Combined votes:** 52
**Rationale:** Each component independently requests custom metrics endpoints for cluster
health. A shared observability framework feature could address all three simultaneously.
| Key | Component | Priority | Votes | Coverage | Summary |
|-----------|------------|----------|-------|----------|----------------------------------|
| RFE-4567 | ROSA | Critical | 18 | none | FIPS-compliant key management |
| RFE-8901 | HyperShift | Major | 14 | partial | Multi-tenant control plane auth |
Rank the top 5–10 opportunities by combined impact (votes × priority weight × cross-team factor):
1. **[ROSA] Auto-scaling for managed clusters** — 34 combined votes, Critical floor,
3 RFEs ready to decompose. High-value, no existing coverage.
2. **[Cross-component] Observability & Metrics** — 52 combined votes across ROSA/HyperShift/MCE.
Coordination opportunity for platform-wide Feature.
3. ...
After presenting the report, offer next steps:
What would you like to do next?
- Drill into a specific theme for more detail
- Run /rfe:decompose <KEY> to create Features for a specific RFE
- Re-run with different filters (e.g., period:6, component:ROSA)
- Export this report as a file
Use AskUserQuestion to present these options if the conversation is interactive.
export JIRA_API_TOKEN=<your-token> and export JIRA_USER=<your-email> before running, or run /rfe:init."period, broaden status, remove component filter).AND status not in ("Closed") instead. See ../triage/references/rfe-jql-patterns.md for verified status values.npx claudepluginhub jhjaggars/rfe --plugin rfeCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.