habit
habit/pr/create-and-close.md
medium
create-and-close
gh pr create --fill — SessionEnd hook 自动翻 In Review。Use when 改 CI / workflow / 评审涉及 `create-and-close` 的 PR。
gh pr createprclose自动翻
paths
.github/****
PR · 创建与关闭
创建 PR
gh pr create --fill
--fill 用第一个 commit 作为 PR title + 后续 commits 作为 body。
SessionEnd hook 自动行为
会话结束时(session_end.sh):
- 检查当前分支是否对应一个 Issue(manifest 反查)
- 检查是否有未推送的 commit
- 如有且 PR 不存在 → 自动
gh pr create --fill - PR 创建后推 Status: In Progress → In Review
PR Body 标准格式
## What
简述本 PR 改动(≤ 3 行)
## Why
为什么改 / 解决什么问题(≤ 5 行)
## How
关键技术决策(如有特殊取舍)
## Related
Closes #54
- PRD: [project-index/modules/<module>/<MODULE_ID>-*.md](...)
- 设计:[design/<module>-sketch.html#<MODULE_ID>](...)
关闭 Issue
PR merge 后:
- GitHub 自动识别
Closes #N→ 关闭 Issue - Project workflow rule "Item closed → Set Status: Done" 触发
- 团队 dashboard CI hourly schedule 兜底(若上面没触发,跑
pr-sync-done)
Merge 策略
| 策略 | 何时 |
|---|---|
| Squash merge | 默认(保持 main 分支线性) |
| Merge commit | 大改动需保留中间历史 |
| Rebase merge | 不用(容易丢 commit 信息) |
反例
# ❌ 手工 git push 不开 PR
git push origin feature
# ❌ PR description 留空 / 无 issue 关联
gh pr create --title "feat" --body ""
# ❌ 多模块塞一个 PR
# 一个 PR 改了 <MODULE_A> + <MODULE_B> + <MODULE_C>
自检
- [ ] 用 gh pr create --fill 不手动?
- [ ] PR body 有 What / Why / Closes #N?
- [ ] 一 PR 一子模块?
- [ ] Squash merge?