RHDH Pull Request
Own publication after implementation is verified. Accept either the current
staged checkout or a change handoff from the calling skill; do not diagnose or
modify product code.
Start here
- Load
references/repo-profiles.md and identify the canonical upstream from
all remotes.
- Run
gh auth status and inspect branch, status, staged diff, and upstream
default branch.
- If the calling skill supplied a change handoff, validate its repository and
file list, issue reference, recordings, and verification evidence against the
checkout. Treat the checkout as authoritative and report mismatches.
- Follow
workflows/create-pull-request.md sequentially. There is no
auto-approve mode: every external write is stated in full and approved as
that stated set before it runs.
Boundaries
- This skill stages, formats, validates, creates changesets, commits, pushes,
opens the PR, uploads supplied recordings, and updates linked GitHub issues.
Jira reads belong to
/rhdh-jira-api and Jira writes to /rhdh-jira-update.
Invoke either by name and consume what it reports; never call Jira directly
from here.
- GitHub issue reads belong to
/rhdh-forge, which returns the same issue
detail with source: github. Load references/github-input.md when the
request supplies an issue URL or number.
- It does not implement fixes or features. If validation exposes a product-code
failure, stop and hand the failure back to the skill that produced the change,
usually
/rhdh-plugin-bug-fix, with the failing command and its output.
- Pre-existing dirty or untracked files are outside the publication set unless
the user explicitly identifies them as part of the change.
- Only published plugin source paths need changesets; private
packages/*, dev
apps, tests, fixtures, and stories do not.
- Never fabricate issue data, recording URLs, CI results, or reviewer evidence.
Change handoff
A skill that produced a verified change may hand it off instead of leaving it
staged; /rhdh-plugin-bug-fix is the usual producer. The handoff arrives in the
conversation and names the change summary, the file list making up the change,
the issue reference, the optional before and after recordings, and the
verification that was run with its result.
The file list is the change set. The producing skill does not stage, so those
paths arrive unstaged or untracked: verify them against the working tree, keep
them out of the pre-existing baseline, and stage exactly them alongside the
build-generated files at the workflow's staging gate. An empty index is a stop
condition only when no handoff was supplied.
When no handoff is supplied, derive these fields from the staged diff and ask
only for unresolved issue context or release intent.
External writes
Read-only inspection, builds, and draft construction do not approve a write. A
push, recording upload, PR creation, or GitHub issue update is an external
write: invoke the named skill mutation-gate and follow it rather than
restating the gate here.
State every write this skill owns with its exact target, exact command, and a
preview of the change — the git push, the GitHub Contents upload, the
pull-request creation, the GitHub issue comment — get approval for that stated
set, execute only that set, and then report the outcome of every operation,
including the ones that were skipped. Stage exactly the approved paths, taken
from the handoff's file list when a handoff supplied them. If an earlier
operation produces material a later one needs, such as an uploaded recording URL
used in the PR body, report the outcomes of the first set, then state and get
approval for the next one. Reject legacy --a as unsupported. Each reported
outcome also names the changed resource or URL, its verification, and any
remaining recovery action.
Completion
Report the PR URL, the repository, the head branch and commit SHA, the generated
changesets, the uploaded recording URLs when recordings were supplied, every
issue update, and the outcome of every external write. Take exact URLs and SHAs
from command output rather than reconstructing them. A created PR is not
complete until its URL is captured and the requested upload gates have either
succeeded or been reported for manual action. If an external update fails, keep
the successful PR result and report the failed update rather than hiding it.
1---2name: rhdh-pr-create3description: Publishes verified changes from rhdh-plugins or community-plugins: detect the repository and affected workspaces, run the repository build pipeline, create package changesets, stage generated files safely, create a signed-off commit and branch, push, open a GitHub pull request, upload optional bug-fix recordings, and link Jira or GitHub issues. Use for raise PR, create or open a plugin PR, push verified plugin changes, or publish a verified change another skill handed off.4---56# RHDH Pull Request78Own publication after implementation is verified. Accept either the current9staged checkout or a change handoff from the calling skill; do not diagnose or10modify product code.1112## Start here13141. Load `references/repo-profiles.md` and identify the canonical upstream from15 all remotes.162. Run `gh auth status` and inspect branch, status, staged diff, and upstream17 default branch.183. If the calling skill supplied a change handoff, validate its repository and19 file list, issue reference, recordings, and verification evidence against the20 checkout. Treat the checkout as authoritative and report mismatches.214. Follow `workflows/create-pull-request.md` sequentially. There is no22 auto-approve mode: every external write is stated in full and approved as23 that stated set before it runs.2425## Boundaries2627- This skill stages, formats, validates, creates changesets, commits, pushes,28 opens the PR, uploads supplied recordings, and updates linked GitHub issues.29 Jira reads belong to `/rhdh-jira-api` and Jira writes to `/rhdh-jira-update`.30 Invoke either by name and consume what it reports; never call Jira directly31 from here.32- GitHub issue reads belong to `/rhdh-forge`, which returns the same issue33 detail with `source: github`. Load `references/github-input.md` when the34 request supplies an issue URL or number.35- It does not implement fixes or features. If validation exposes a product-code36 failure, stop and hand the failure back to the skill that produced the change,37 usually `/rhdh-plugin-bug-fix`, with the failing command and its output.38- Pre-existing dirty or untracked files are outside the publication set unless39 the user explicitly identifies them as part of the change.40- Only published plugin source paths need changesets; private `packages/*`, dev41 apps, tests, fixtures, and stories do not.42- Never fabricate issue data, recording URLs, CI results, or reviewer evidence.4344## Change handoff4546A skill that produced a verified change may hand it off instead of leaving it47staged; `/rhdh-plugin-bug-fix` is the usual producer. The handoff arrives in the48conversation and names the change summary, the file list making up the change,49the issue reference, the optional before and after recordings, and the50verification that was run with its result.5152The file list is the change set. The producing skill does not stage, so those53paths arrive unstaged or untracked: verify them against the working tree, keep54them out of the pre-existing baseline, and stage exactly them alongside the55build-generated files at the workflow's staging gate. An empty index is a stop56condition only when no handoff was supplied.5758When no handoff is supplied, derive these fields from the staged diff and ask59only for unresolved issue context or release intent.6061## External writes6263Read-only inspection, builds, and draft construction do not approve a write. A64push, recording upload, PR creation, or GitHub issue update is an external65write: invoke the named skill `mutation-gate` and follow it rather than66restating the gate here.6768State every write this skill owns with its exact target, exact command, and a69preview of the change — the `git push`, the GitHub Contents upload, the70pull-request creation, the GitHub issue comment — get approval for that stated71set, execute only that set, and then report the outcome of every operation,72including the ones that were skipped. Stage exactly the approved paths, taken73from the handoff's file list when a handoff supplied them. If an earlier74operation produces material a later one needs, such as an uploaded recording URL75used in the PR body, report the outcomes of the first set, then state and get76approval for the next one. Reject legacy `--a` as unsupported. Each reported77outcome also names the changed resource or URL, its verification, and any78remaining recovery action.7980## Completion8182Report the PR URL, the repository, the head branch and commit SHA, the generated83changesets, the uploaded recording URLs when recordings were supplied, every84issue update, and the outcome of every external write. Take exact URLs and SHAs85from command output rather than reconstructing them. A created PR is not86complete until its URL is captured and the requested upload gates have either87succeeded or been reported for manual action. If an external update fails, keep88the successful PR result and report the failed update rather than hiding it.