--- name: raise-pr description: Step-by-step workflow for committing staged changes and opening a pull request in the lightspeed-service repo. disable-model-invocation: true --- # Create a PR ## Step 1: Branch ```bash git fetch upstream git branch --show-current git log --oneline upstream/main..HEAD git diff upstream/main --stat gh pr list --head "$(git branch --show-current)" --state open ``` Present the summary and ask before proceeding: > "You are currently on branch ``. It has `` commit(s) ahead of `upstream/main` touching: ``. > [If an open PR exists]: This branch already has an open PR: ``. Pushing here would add commits to that existing PR. > Should I create a **new branch** from `upstream/main` (recommended), or use the current branch?" **Do not continue until the user answers.** If creating a new branch — git carries uncommitted changes automatically: ```bash git fetch upstream git checkout -b / upstream/main # cherry-pick intended commits from the old branch if needed git cherry-pick ... ``` Never branch from `origin/main` — the fork may have stale commits that will appear in the PR. ## Step 2: Pre-commit checks Run in order and fix all failures before proceeding: 1. `make test-unit` 2. `make test-integration` 3. `make verify` 4. Confirm 90%+ coverage is maintained for changed code ## Step 3: Commit and push If a Jira issue ID has not been provided, ask the user for it before proceeding. Commit message: short imperative sentence, no period, no conventional prefix, no Jira ID. ```bash git add -A # or only the relevant files git commit -m "" git push -u origin HEAD ``` ## Step 4: Open the PR Title format: `: ` Read `.github/PULL_REQUEST_TEMPLATE.md` and populate all sections: - **Description** — what the change does and why, derived from the diff - **Type of change** — tick the relevant checkbox(es) - **Related Tickets & Documents** — `Closes #` if it resolves one; always link the Jira ticket - Ticket links are in the format: https://issues.redhat.com/browse/ - **Checklist** — tick what applies; leave unticked items that genuinely don't apply - **Testing** — describe how the change was verified ```bash gh pr create --title ": " --body "$(cat <<'EOF' EOF )" ``` Return the PR URL to the user when done.