diff --git a/.pi/prompts/landpr.md b/.pi/prompts/landpr.md index c36820839c5..1b150c05e0d 100644 --- a/.pi/prompts/landpr.md +++ b/.pi/prompts/landpr.md @@ -11,8 +11,10 @@ Input Do (end-to-end) Goal: PR must end in GitHub state = MERGED (never CLOSED). Use `gh pr merge` with `--rebase` or `--squash`. -1. Repo clean: `git status`. -2. Identify PR meta (author + head branch): +1. Assign PR to self: + - `gh pr edit --add-assignee @me` +2. Repo clean: `git status`. +3. Identify PR meta (author + head branch): ```sh gh pr view --json number,title,author,headRefName,baseRefName,headRepository --jq '{number,title,author:.author.login,head:.headRefName,base:.baseRefName,headRepo:.headRepository.nameWithOwner}' @@ -21,50 +23,50 @@ Goal: PR must end in GitHub state = MERGED (never CLOSED). Use `gh pr merge` wit head_repo_url=$(gh pr view --json headRepository --jq .headRepository.url) ``` -3. Fast-forward base: +4. Fast-forward base: - `git checkout main` - `git pull --ff-only` -4. Create temp base branch from main: +5. Create temp base branch from main: - `git checkout -b temp/landpr-` -5. Check out PR branch locally: +6. Check out PR branch locally: - `gh pr checkout ` -6. Rebase PR branch onto temp base: +7. Rebase PR branch onto temp base: - `git rebase temp/landpr-` - Fix conflicts; keep history tidy. -7. Fix + tests + changelog: +8. Fix + tests + changelog: - Implement fixes + add/adjust tests - Update `CHANGELOG.md` and mention `#` + `@$contrib` -8. Decide merge strategy: +9. Decide merge strategy: - Rebase if we want to preserve commit history - Squash if we want a single clean commit - If unclear, ask -9. Full gate (BEFORE commit): - - `pnpm lint && pnpm build && pnpm test` -10. Commit via committer (include # + contributor in commit message): +10. Full gate (BEFORE commit): + - `pnpm lint && pnpm build && pnpm test` +11. Commit via committer (include # + contributor in commit message): - `committer "fix: (#) (thanks @$contrib)" CHANGELOG.md ` - `land_sha=$(git rev-parse HEAD)` -11. Push updated PR branch (rebase => usually needs force): +12. Push updated PR branch (rebase => usually needs force): ```sh git remote add prhead "$head_repo_url.git" 2>/dev/null || git remote set-url prhead "$head_repo_url.git" git push --force-with-lease prhead HEAD:$head ``` -12. Merge PR (must show MERGED on GitHub): +13. Merge PR (must show MERGED on GitHub): - Rebase: `gh pr merge --rebase` - Squash: `gh pr merge --squash` - Never `gh pr close` (closing is wrong) -13. Sync main: +14. Sync main: - `git checkout main` - `git pull --ff-only` -14. Comment on PR with what we did + SHAs + thanks: +15. Comment on PR with what we did + SHAs + thanks: ```sh merge_sha=$(gh pr view --json mergeCommit --jq '.mergeCommit.oid') gh pr comment --body "Landed via temp rebase onto main.\n\n- Gate: pnpm lint && pnpm build && pnpm test\n- Land commit: $land_sha\n- Merge commit: $merge_sha\n\nThanks @$contrib!" ``` -15. Verify PR state == MERGED: +16. Verify PR state == MERGED: - `gh pr view --json state --jq .state` -16. Delete temp branch: +17. Delete temp branch: - `git branch -D temp/landpr-`