# GitHub Pull Request

PR 工作必须使用受控 UniDesk GitHub 命令：

- review 前先用 `pr review-plan`、`pr diff --file` 和有界文件下钻。
- 人工完整 PR 正文使用 `trans gh:/owner/repo/pr/<number> cat`；定点查找使用同一路由的 `rg <pattern>`。
- `pr view <number> --json body,...`、`--full` 和 `--raw` 只用于显式机器结构化披露；正文只在 `.data.pullRequest.body` 输出一次。
- `pr create` 默认 Next 只给有界 observe/review/preflight/status：
  - `pr view`；
  - `pr review-plan`；
  - `pr preflight`；
  - 显式 closeout 字段 status。
  默认不得提示 `preflight --full|--raw`、手工 CI/CD、mirror sync、创建 PipelineRun 或 Argo refresh。
- `pr preflight` 是可选只读诊断；`pr merge` 内部会自行执行 preflight。
- 主代理受控合并仍然允许：
  - 主代理按 `$unidesk-subagent` 完成 review/preflight/merge 判断后使用 guarded `pr merge`；
  - 不得把 `pr create` Next 限制误解成“PR 永远不能人工受控合并”。
- `pr merge --merge` 默认删除已合并的同 repo head branch，清理匹配且干净的本地 `.worktree`，并快进位于 PR base branch 的本地主工作区。
- `pr merge --merge --sync-node JD01` 在支持时额外执行映射节点 source-workspace sync；当前用于 HWLAB `v0.3`。
- 只有明确需要保留合并后状态时才使用 `--keep-branch` 或 `--skip-local-closeout`。
- 只有 ancestry 和语义吸收都明确安全时才使用 squash。

Closeout 应写明 source branch、验证证据和残余风险。
