fix: preserve PR head branches by default
This commit is contained in:
@@ -34,6 +34,10 @@ GitHub issue/PR 正式读写必须走 `bun scripts/cli.ts gh ...` 或 `trans gh:
|
||||
- 已合并 PR 先用独立 PR 精确 revert 原 PR,回滚合并后再开始正确实现;
|
||||
- 回滚 PR 与正确实现 PR 必须分离,完整流程见 [references/pull-requests.md](references/pull-requests.md)。
|
||||
- PR merge 只走 guarded `gh pr merge`;它内建 readiness/preflight,普通已审 PR 不先机械执行独立 `pr preflight`。主代理按 `$unidesk-subagent` 完成 review 和 merge 授权判断后执行;只有确认 ancestry 可丢弃时才显式 `--squash`。
|
||||
- `gh pr merge` 的远端 head branch 生命周期:
|
||||
- 默认保留;
|
||||
- 只有确认 head 是可删除的临时分支时才显式传 `--delete-branch`;
|
||||
- `--keep-branch` 仅作为兼容的显式声明。
|
||||
- 功能、skill、MDTODO 报告和完成状态在 merge 前已齐备时,必须进入同一个 PR。禁止仅为补写 merge SHA、`mergedAt`、branch deletion 或重复 closeout 再开文档 PR;这些事实由 GitHub PR 和 `gh pr merge` 默认摘要保存。
|
||||
- 成功 merge 后默认摘要已披露 `mergeCommit` 和 `mergedAt`,不再机械执行 `pr view`。只有输出缺字段、merge 后出现新运行证据,或需要定点排障时才继续查询;只有用户明确要求把 merge 后新证据写回 Git 时,才创建第二个 closeout PR。
|
||||
|
||||
|
||||
@@ -15,14 +15,18 @@ PR 工作必须使用受控 UniDesk GitHub 命令:
|
||||
- 主代理受控合并仍然允许:
|
||||
- 主代理按 `$unidesk-subagent` 完成 review 和 merge 授权判断后使用 guarded `pr merge`;
|
||||
- 不得把 `pr create` Next 限制误解成“PR 永远不能人工受控合并”。
|
||||
- `pr merge --merge` 默认删除已合并的同 repo head branch,清理匹配且干净的本地 `.worktree`,并快进位于 PR base branch 的本地主工作区。
|
||||
- `pr merge --merge` 的分支处理规则:
|
||||
- 默认保留已合并的 head branch;
|
||||
- 以 `branch-preserved` 披露未删除原因;
|
||||
- 只有确认 head 是可删除的临时分支时才显式使用 `--delete-branch`;
|
||||
- 本地 closeout 仍会清理匹配且干净的 `.worktree`,并快进位于 PR base branch 的本地主工作区。
|
||||
- 整个 PR 的授权目标、架构方向、data flow 或 source of truth 被判定错误时:
|
||||
- 未合并:通过受控 GitHub 入口关闭 PR,停止旧 writer,保留 PR/commit 作为证据;从最新目标分支创建新分支、worktree 和 PR,禁止在错误 head 上继续提交纠偏补丁;
|
||||
- 已合并:从包含该 merge 的最新目标分支创建独立 revert PR,只精确反向原 PR;先 guarded merge 回滚,再从恢复后的目标分支创建正确实现 PR;
|
||||
- 禁止把回滚和新实现混入同一 PR,也禁止用 reset、force push、覆盖式 checkout 或人工 runtime patch 冒充回滚;
|
||||
- 局部实现缺陷仍可在原未合并 PR 修正,方向性判定必须由用户最新目标、适用 SPEC 和 current/desired data flow 支撑。
|
||||
- `pr merge --merge --sync-node JD01` 在支持时额外执行映射节点 source-workspace sync;当前用于 HWLAB `v0.3`。
|
||||
- 只有明确需要保留合并后状态时才使用 `--keep-branch` 或 `--skip-local-closeout`。
|
||||
- `--keep-branch` 保留为兼容的显式声明;只有明确需要保留本地 worktree 状态时才使用 `--skip-local-closeout`。
|
||||
- 只有 ancestry 和语义吸收都明确安全时才使用 squash。
|
||||
- 功能实现、skill、MDTODO 报告和完成状态在 merge 前已齐备时,必须用一个 PR 收口。不得仅为补 merge SHA、`mergedAt`、branch deletion、已合并状态或重复 closeout 再开 PR。
|
||||
- merge commit 与合并时间由 GitHub PR 事实和 `gh pr merge` 默认摘要保存,不要求回写 MDTODO 报告。成功合并后不机械执行 `pr view`;只有默认输出缺少必要字段或需要定点排障时才查询。
|
||||
|
||||
Reference in New Issue
Block a user