mit einem Klick
rfe-speedrun
// End-to-end RFE pipeline. Accepts a single idea, Jira key(s), or a YAML batch file. Creates, reviews, auto-fixes (with splits), and submits. Supports --headless, --announce-complete, and --dry-run for CI.
// End-to-end RFE pipeline. Accepts a single idea, Jira key(s), or a YAML batch file. Creates, reviews, auto-fixes (with splits), and submits. Supports --headless, --announce-complete, and --dry-run for CI.
| name | rfe.speedrun |
| description | End-to-end RFE pipeline. Accepts a single idea, Jira key(s), or a YAML batch file. Creates, reviews, auto-fixes (with splits), and submits. Supports --headless, --announce-complete, and --dry-run for CI. |
| user-invocable | true |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, Skill |
You are running the full RFE pipeline in speedrun mode. Your goal is to go from problem statements to submitted Jira tickets with minimal interaction. You orchestrate by calling other skills — never duplicate their work.
Parse $ARGUMENTS for:
--input <path>: Path to a YAML file with batch entries--headless: Suppress questions and confirmations (for CI / eval)--announce-complete: Print completion marker when done (for CI / eval harnesses)--dry-run: Skip Jira writes in submit--batch-size N: Override batch size (default 5), passed to auto-fixClean temp state and persist parsed flags. batch_size MUST always be a concrete integer — if the user did not pass --batch-size, substitute the speedrun default of 5. Do not write <N>, null, or omit the field.
python3 scripts/state.py clean
python3 scripts/prep_assess.py --clean-all
python3 scripts/state.py init tmp/speedrun-config.yaml headless=<true/false> announce_complete=<true/false> dry_run=<true/false> batch_size=<N or 5> input_file=<path or null>
Determine pipeline mode:
--input flag present → batch create + auto-fix + submit--input → single create + auto-fix + submitIf no arguments provided, stop with usage instructions.
When the user doesn't specify, use these defaults:
Mode A (Batch YAML): Read the YAML input file. Format:
- prompt: "Users need to verify model signatures at serving time"
priority: Critical
labels: [candidate-3.5]
- prompt: "TrustyAI operator crashes on large clusters"
priority: Major
Count entries and pre-allocate all IDs upfront:
N=$(python3 -c "import yaml; print(len(yaml.safe_load(open('batch.yaml'))))")
python3 scripts/next_rfe_id.py $N # prints RFE-001 through RFE-<N>
For each entry, launch an Agent to invoke /rfe.create. Pass the pre-assigned ID so each Agent knows which ID to use:
Agent for entry 1: /rfe.create --headless --rfe-id RFE-001 [--priority <priority>] <prompt>
Agent for entry 2: /rfe.create --headless --rfe-id RFE-002 [--priority <priority>] <prompt>
...
Agent for entry N: /rfe.create --headless --rfe-id RFE-<N> [--priority <priority>] <prompt>
Each entry is a single business need — /rfe.create must produce exactly one RFE per invocation. Wait for all N agents to complete. You must have exactly N RFE IDs — if fewer were created, retry the missing entries. Never delete or re-create task files during Phase 1 — quality issues are addressed in Phase 2 (Auto-fix).
Mode B (Existing RFE): Skip Phase 1. The Jira key(s) from arguments become the processing list.
Mode C (Single idea): Invoke /rfe.create with the user's input:
/rfe.create [--headless] <idea_text>
If not headless, /rfe.create will ask clarifying questions. Collect created RFE IDs.
After Phase 1 (all modes), persist the ID list to disk:
python3 scripts/state.py write-ids tmp/speedrun-all-ids.txt <all_IDs>
Re-read config and ID list from disk (in case context was compressed during Phase 1):
python3 scripts/state.py read tmp/speedrun-config.yaml
python3 scripts/state.py read-ids tmp/speedrun-all-ids.txt
Build the auto-fix command using flags from the config file:
/rfe.auto-fix [--headless] [--announce-complete] --batch-size <batch_size> <all_IDs_from_file>
Pass --headless and --announce-complete through if set in the config. Always pass --batch-size <batch_size> using the value from tmp/speedrun-config.yaml — never omit it, never let auto-fix's own default take over. The speedrun default (5) was already pinned in Step 0; relying on it here is what makes runs reproducible.
Auto-fix handles: assessment, feasibility checks, review, auto-revision, re-assessment, splitting oversized RFEs, retry queue, and report generation. Wait for it to complete. Do NOT stop, summarize, or skip remaining batches early — the pipeline must process every ID through all phases. Never emit a text-only response (no tool call) during pipeline execution — this terminates the CI process.
After auto-fix returns, verify all RFEs were processed:
python3 scripts/check_autofix_complete.py
If incomplete (exit code 1), the output shows MISSING_IDS=RFE-006,RFE-007,.... Re-invoke auto-fix with only the missing IDs:
/rfe.auto-fix [--headless] [--batch-size N] <missing_IDs>
Repeat the verify+retry cycle until all RFEs have reviews or 3 retries have been exhausted.
Re-read flags (in case context was compressed):
python3 scripts/state.py read tmp/speedrun-config.yaml
Re-read ID list from disk:
python3 scripts/state.py read-ids tmp/speedrun-all-ids.txt
Collect passing IDs:
python3 scripts/collect_recommendations.py <all_IDs_from_file>
Parse the SUBMIT= line for IDs ready to submit.
If no IDs are ready to submit, skip to Phase 4.
If IDs are ready:
/rfe.submit [--dry-run] [--headless] <passing_IDs>
If not headless: /rfe.submit will show a confirmation table before writing to Jira — this is the one mandatory interaction point.
If headless: pass --headless so submit skips confirmation.
Re-read flags:
python3 scripts/state.py read tmp/speedrun-config.yaml
If headless, output a brief machine-readable summary. If interactive, output:
## Speedrun Complete
### Created
- RFE-NNN: <title> (Priority: Normal)
### Review Results
- Passed: N
- Failed: N
- Split: N (into M children)
### Submitted
- RHAIRFE-NNNN: <title> [created/updated/dry-run]
### Reports
- Run report: artifacts/auto-fix-runs/<timestamp>.yaml
- Review report: artifacts/auto-fix-runs/<timestamp>-report.html
### Remaining Issues
<Any RFEs that could not be auto-fixed, or "None">
$ARGUMENTS
Reviews RFEs for technical feasibility, blockers, and alignment with technical strategy.
Review and fix batches of RFEs automatically. Accepts explicit IDs or a JQL query. Reviews, auto-revises, and splits oversized RFEs. Non-interactive.
Reviews strategy features for architectural correctness — dependencies, integration patterns, component interactions.
Write a new RFE from a problem statement, idea, or need. Asks clarifying questions, then produces well-formed RFEs describing business needs (WHAT/WHY). Use when starting from scratch.
Reviews strategy features for technical feasibility, implementation complexity, and effort estimate credibility.
Submit or update RFEs in Jira. Creates new RHAIRFE tickets for new RFEs, or updates existing tickets for RFEs fetched from Jira. Use after /rfe.review.