From rhdh
Manages RHDH release logistics — dates, status, team coordination, freeze announcements, blocker bugs, CVEs, release notes. Triggered by RHDH release management questions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/rhdh:rhdh-releaseThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<essential_principles>
references/config.mdreferences/jql-release.mdreferences/slack-templates.mdscripts/formatters.pyscripts/jql.pyscripts/release.pyscripts/slack_templates.pytests/check-gsheets.mdtests/check-jira.mdtests/check-structural.mdtests/demo-release-cli.mdworkflows/announce-code-freeze-update.mdworkflows/announce-code-freeze.mdworkflows/announce-feature-freeze-update.mdworkflows/announce-feature-freeze.mdworkflows/blocker-bugs.mdworkflows/cves.mdworkflows/engineering-epics.mdworkflows/future-release-dates.mdworkflows/issues-by-team.md<essential_principles>
Always use `parse_issues.py --enrich` for team counts — never count manually. The Team custom field cannot be queried via JQL. Use `acli jira workitem search --json | python ~/.claude/skills/rhdh-jira/scripts/parse_issues.py --enrich` and filter by team in the output. Include Jira search links for traceability in all outputs. Build links by URL-encoding the JQL: `https://issues.redhat.com/issues/?jql=`. Always wrap Slack messages in triple-backtick code blocks (` ```slack `) for easy copy-paste. Tell the user they can copy-paste this directly into Slack. When analyzing release health, check these risk indicators: 1. Blocker bugs near freeze dates — query with `priority = Blocker` 2. High open issue count per team — use team breakdown to identify overloaded teams 3. Missing release notes — query issues with empty Release Note Type 4. Critical CVEs — query vulnerabilities with CVE in summary 5. EPICs not in Dev Complete — check epic statusAlways provide: specific issue counts with Jira links, team-level breakdown if applicable, actionable recommendations (retriage, escalate, extend timeline), and impact assessment.
For team coordination: 1. Retrieve team info from Google Sheets to get leads and Slack handles 2. Include team leads' Slack handles in all team communications 3. Provide Jira links scoped to each team's issues 4. Highlight teams at risk (high open counts, blockers) 5. Suggest follow-up actions per team Never read `.jira-token` into context. Always use shell substitution: `"$(cat "$TOKEN_FILE")"`.</essential_principles>
What would you like to do?
Wait for response before proceeding.
Preferred: Run the release CLI first (python scripts/release.py --json <command>). If the CLI fails, fall back to the workflow's manual steps.
| Response | CLI Command | Workflow (fallback) |
|---|---|---|
| 1, "release dates", "key dates", "freeze dates", "milestone dates" | python scripts/release.py --json dates | workflows/release-dates.md |
| 2, "future releases", "upcoming releases", "release roadmap", "future dates" | python scripts/release.py --json future-dates VERSION | workflows/future-release-dates.md |
| 3, "release status", "active releases", "release health", "release overview" | python scripts/release.py --json status VERSION | workflows/release-status.md |
| 4, "teams", "team leads", "team list", "team contacts", "team directory" | python scripts/release.py --json teams | workflows/teams-and-leads.md |
| 5, "team breakdown", "issues by team", "team workload", "team counts" | python scripts/release.py --json team-breakdown VERSION | workflows/issues-by-team.md |
| 6, "blocker bugs", "blockers", "critical issues", "blocking issues" | python scripts/release.py --json blockers VERSION | workflows/blocker-bugs.md |
| 7, "epics", "engineering epics", "open epics", "active epics" | python scripts/release.py --json epics VERSION | workflows/engineering-epics.md |
| 8, "cves", "vulnerabilities", "security issues", "security bugs" | python scripts/release.py --json cves VERSION | workflows/cves.md |
| 9, "release notes", "missing release notes", "release note gaps" | python scripts/release.py --json notes VERSION | workflows/release-notes.md |
| 10, "feature freeze update", "feature freeze status", "feature freeze progress" | python scripts/release.py --json slack feature-freeze-update VERSION | workflows/announce-feature-freeze-update.md |
| 11, "feature freeze announcement", "announce feature freeze", "feature freeze reached" | python scripts/release.py --json slack feature-freeze VERSION | workflows/announce-feature-freeze.md |
| 12, "code freeze update", "code freeze status", "code freeze progress" | python scripts/release.py --json slack code-freeze-update VERSION | workflows/announce-code-freeze-update.md |
| 13, "code freeze announcement", "announce code freeze", "code freeze reached" | python scripts/release.py --json slack code-freeze VERSION | workflows/announce-code-freeze.md |
<reference_index>
| Reference | Purpose | Load when |
|---|---|---|
references/jql-release.md | 13 release-specific JQL templates | Any Jira query for release data |
references/slack-templates.md | 4 Slack announcement templates | Generating freeze announcements |
references/config.md | GDrive IDs, project keys, dashboards, gog setup | Looking up config values or links |
gog docs cat 13OkypJ3u_7Jq6kEhKhjEFwHQ12oPFDKXVzFjYW4XLdk | Release process (live Google Doc) | Release process questions, onboarding |
../../rhdh-jira/references/auth.md | Jira auth setup | Jira prerequisite fails |
../../rhdh-jira/references/acli-commands.md | acli command reference | Building acli commands |
</reference_index>
Run before any workflow:
| Requirement | Check | Fix |
|---|---|---|
| Jira CLI | acli jira workitem search --jql "project=RHIDP" --count succeeds | Load ../../rhdh-jira/SKILL.md Prerequisites |
| gog CLI (for Google Sheets/Docs) | gog sheets metadata 1vQXfvID72qwqvLb17eyGOvnZXrZG7NBzTGv6RP9wvyM --json succeeds | Install gog and run gog auth add <email> |
npx claudepluginhub redhat-developer/rhdh-skill --plugin rhdhInteracts with RHDH Jira projects (RHIDP, RHDHPLAN, RHDHBUGS, RHDHSUPP) using acli and GraphQL. Covers the full lifecycle: create issues, assign, refine, plan sprints, report, track releases, update status.
Manages git project releases: creates milestones, generates roadmaps, executes 9-stage pipeline with submodule support, closes releases. Yolo mode enables autonomous runs.
Queries JIRA REST API to fetch raw bug data for projects, including all fields and metadata. Supports filters by component, status, and closed issues for custom analysis.