`gh pr merge` は必ずPR番号を明示する(`gh pr merge 17 --repo owner/repo --squash --delete-branch`)。
**Why:** 連続PR作業中、worktreeでpush直後に引数なし `gh pr merge --squash` を実行したら、出力が空のまま無言で失敗し、PRがOPENのまま残った(mail-cleaner PR #17)。直後の `git pull` は「Already up to date」になり、一見デプロイ成功に見えた。`grep -c 'class ImapJob'` が0件で初めてマージ漏れに気づいた。カレントブランチ文脈(特に直前に `--delete-branch` でローカルブランチを消した後)だと引数なしmergeは対象を解決できないことがある。
**How to apply:**
- マージは `gh pr merge <番号> --repo
- マージ後は `gh pr view <番号> --json state -q .state` で `MERGED` を必ず確認
- 本番pull後は「そのPRで追加したシンボル(クラス名・関数名)」を `grep -c` で実在確認してからデプロイ完了とみなす。`git pull` の「Already up to date」を成功と即断しない
[[instinct_vvv_prod_direct_edit_git_drift]] と同じ「見た目の成功を疑う」系の教訓。
---
(migrated from local memory/instinct_gh_pr_merge_explicit_number.md)