Skip to content

Experiment: re-platform opendatahub-io/rfe-creator as a fullsend custom agent #32

Description

@ralphbean

What

opendatahub-io/rfe-creator is a set of Claude Code skills for creating, reviewing, and submitting RFEs (Requests for Enhancement) to Jira. The pipeline is: create → review (rubric scoring + technical feasibility + auto-revision) → submit to Jira. It supports batch processing, multi-round review cycles, and headless/CI mode.

The question is whether this can be re-platformed on top of fullsend as a custom agent setup, similar to how konflux-ci/refinement runs explore → refine → critique as fullsend agents with Jira integration.

Why this is interesting

  • rfe-creator is already well-factored: the LLM work lives in sub-agent prompt files, and the heavy lifting (Jira CRUD, frontmatter management, state persistence, batch orchestration) lives in ~36 Python scripts that are largely framework-agnostic.
  • The refinement repo already demonstrates the pattern for Jira-integrated fullsend agents with structured JSON output, pre/post scripts, and review loops.
  • If it works, it validates that fullsend's custom agent model can absorb non-trivial existing Claude Code skill projects.

What needs to happen

Upstream patches to rfe-creator (propose before re-platforming)

Three small, non-breaking patches that make the pieces more reusable:

  1. Configurable Jira project + issue type. submit.py and split_submit.py hardcode "RHAIRFE" and "Feature Request". Add JIRA_PROJECT (required, no default — fail if unset, same as JIRA_SERVER/JIRA_USER/JIRA_TOKEN via require_env()) and JIRA_ISSUE_TYPE (default "Feature Request"). Also replace the startswith("RHAIRFE-") heuristic for detecting existing-vs-new issues with a general "looks like a Jira key" regex (^[A-Z]+-\d+$) since the local convention is always RFE-NNN.

  2. Env var inputs for sub-agent prompts. The four prompts under .claude/skills/rfe.review/prompts/ use {ID}, {ASSESS_PATH}, etc. as inline placeholders substituted by the Claude Code orchestrator. Change these to read from environment variables ($RFE_ID, $ASSESS_PATH), which works in both Claude Code (set env before Agent launch) and fullsend (native env var injection).

  3. --no-default-filter on jql_query.py. The script appends rfe-creator-specific label exclusions to every JQL query. Add a flag to pass JQL through unmodified.

Re-platform work

  • Map the rfe-creator pipeline to fullsend agents. Likely 3 agents: create, review, critique — mirroring refinement's explore/refine/critique structure.
  • /rfe.submit is deterministic Python (no LLM), so it becomes a post-script.
  • /rfe.speedrun and /rfe.auto-fix orchestration becomes a GitHub Actions workflow chaining agent dispatches.
  • YAML frontmatter ↔ JSON translation happens in pre/post scripts.

Open questions

  • The rfe-creator review pipeline has 4 sub-agents (fetch, assess, feasibility, revise) run in parallel waves. Does each become its own fullsend agent, or do some collapse into pre/post scripts?
  • The assess-rfe rubric is bootstrapped from a separate repo at runtime. Vendored skill, pre-script fetch, or something else?
  • Interactive mode (/rfe.create asks clarifying questions) doesn't map to fullsend's headless model. Headless-only acceptable?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions