| 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
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 <branch>. It has <N> commit(s) ahead of upstream/main touching: <files>.
[If an open PR exists]: This branch already has an open PR: <url>. 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:
git fetch upstream
git checkout -b <type>/<short-description> upstream/main
git cherry-pick <sha1> <sha2> ...
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:
make test-unit
make test-integration
make verify
- 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.
git add -A
git commit -m "<message>"
git push -u origin HEAD
Step 4: Open the PR
Title format: <JIRA-ID>: <same short imperative sentence as commit>
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 #<github-issue> if it resolves one; always link the Jira ticket
- Checklist — tick what applies; leave unticked items that genuinely don't apply
- Testing — describe how the change was verified
gh pr create --title "<JIRA-ID>: <description>" --body "$(cat <<'EOF'
<populated template>
EOF
)"
Return the PR URL to the user when done.