| name | rhdh-jira |
|---|---|
| description | Interact with RHDH Jira projects (RHIDP, RHDHPLAN, RHDHBUGS, RHDHSUPP) using the Atlassian CLI (acli). Use when the user needs to search, create, view, edit, transition, comment on, or link Jira issues for Red Hat Developer Hub. Also use when the user asks about Jira workflows, exit criteria, issue templates, custom fields, boards, sprints, or JQL queries in the RHDH context. Trigger when the user mentions Jira issue keys like RHIDP-1234, RHDHPLAN-567, RHDHBUGS-890, or any RHDH project key. Also trigger for support case bug filing, feature request creation, or release planning in Jira. Covers acli setup, authentication, and troubleshooting. |
| compatibility | acli (Atlassian CLI) on PATH. Python 3 for scripts. Windows, macOS, Linux. |
Foundational skill for interacting with RHDH's Jira instance via the Atlassian CLI (acli). Covers all four active projects, issue types, workflows, custom fields, and JQL patterns.
Run scripts/setup.py to verify everything is configured:
python scripts/setup.pyThe script checks:
aclibinary on PATH- Jira API token auth configured (
~/.config/acli/jira_config.yaml) - Smoke test against
redhat.atlassian.net
If acli is not installed, download from Atlassian CLI. Authenticate with acli auth login or configure an API token.
| Script | Purpose |
|---|---|
scripts/setup.py |
Verify acli install + auth. Run with --json for structured output. |
scripts/parse_issues.py |
Flatten, enrich, and filter acli JSON output. Solves the core problem: acli search --json can't return custom fields (team, story points, sprint). Pipe search results in, get clean data out. Use --enrich to fetch full fields, -f team="X" to filter by team. |
| Key | Purpose | Issue Types |
|---|---|---|
| RHIDP | Engineering work | Epic, Story, Task, Sub-task, Vulnerability |
| RHDHPLAN | Program planning | Feature, Outcome, Feature Request, Sub-task |
| RHDHBUGS | Product defects | Bug, Sub-task |
| RHDHSUPP | Support-engineering interactions | Bug |
RHDHPAI (Plugins and AI) is archived — JQL queries against it will fail.
- Story — end-user facing work (API, UI changes)
- Task — not end-user facing (tests, CI/CD, refactoring, code organization)
- Epic — collection of Stories/Tasks toward a deliverable
- Feature — program-level planning item in RHDHPLAN
- Bug — product defect (RHDHBUGS) or support case tracking (RHDHSUPP)
- Sub-task — child of any issue type above
- Vulnerability — CVE tracking in RHIDP (Product Security)
Load only what the current task requires.
| File | Load when... |
|---|---|
references/acli-commands.md |
Running an acli command you haven't used before, or hitting unexpected flag behavior. Quick reference for syntax, flag differences, and output formats. |
references/fields.md |
Need to know a field name, custom field ID, accepted values, or label conventions. Custom fields, labels, link types, components, priorities. |
references/workflows.md |
Transitioning issues, checking exit criteria, or verifying readiness for the next status. |
references/templates.md |
Creating new issues. Also load references/workflows.md for required fields at entry status. |
references/support.md |
Handling support cases, filing bugs from customer cases, or creating feature requests from support. |
references/jql-patterns.md |
Building a JQL query, finding a board ID, or looking up sprint information. JQL cookbook with 23+ tested queries. |
acli auth statuslies. It checks OAuth, not API token auth. Always returns "unauthorized" with token auth even when Jira works fine. Useacli jira project list --recent 1as a smoke test instead.viewuses positional arg, everything else uses--key.acli jira workitem view RHIDP-123butacli jira workitem edit --key RHIDP-123 ....--yesis mandatory for mutations. Alledit,transition,assign, andlink createcommands prompt interactively without it. Always pass--yes.--fieldsis restrictive on search. Only acceptskey,summary,status,assignee,issuetype,priority,description,labels. For components, sprint, fixVersions, and all custom fields — use--jsonorscripts/parse_issues.py --enrich.- Team field is NOT JQL-filterable.
customfield_10001cannot be used in JQL WHERE clauses. Fetch all issues, filter bycustomfield_10001.namein post-processing. - ADF vs plain text. Reading descriptions via
--jsonreturns Atlassian Document Format (nested JSON). Creating/editing with--descriptionaccepts plain text. Don't try to round-trip ADF through--description. - Acceptance Criteria field is almost always null. Scan the description for "Requirements", "Acceptance Criteria", or bullet-style criteria instead of checking
customfield_10718.
| Error | Action |
|---|---|
acli not on PATH |
Run scripts/setup.py. Install from Atlassian if missing. |
"unauthorized" from auth status |
Ignore. Check jira_config.yaml exists. Run smoke test. |
| "required flag(s) not set" | Command syntax wrong. Run acli jira <subcommand> --help. |
| "field X is not allowed" | Use --json instead of --fields for that field. |
| "the value X does not exist for the field 'project'" | Project key is wrong or project is archived (e.g., RHDHPAI). |
| Rate limiting (429) | Wait 5 seconds, retry once. |
| Interactive prompt hangs | Missing --yes flag on a mutating command. |
- Load
references/templates.mdfor the body template - Load
references/workflows.mdfor required fields at New status - Run
acli jira workitem create(seereferences/acli-commands.mdif unsure of syntax)
- Build JQL using patterns from
references/jql-patterns.md - Pipe results through
scripts/parse_issues.py --enrichfor full field data - Use
-f team="X"to filter by team (not possible in JQL)
- Load
references/workflows.mdfor exit criteria at the target status - Verify required fields are set before transitioning
- Run
acli jira workitem transition --key KEY --status "X" --yes
- Non-RHDH Jira projects — this skill's field mappings, workflows, and JQL patterns are specific to RHIDP/RHDHPLAN/RHDHBUGS/RHDHSUPP
- Jira REST API directly — this skill covers
acliCLI only