3.3 KiB
3.3 KiB
GitHub Pull Request
PR 工作必须使用受控 UniDesk GitHub 命令:
- review 前先用
pr review-plan建立 changed-file 索引,只对需要审查的文件使用pr diff --file和有界 hunk 下钻;不得逐文件机械展开。 - 人工完整 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 和 merge 授权判断后使用 guardedpr merge; - 不得把
pr createNext 限制误解成“PR 永远不能人工受控合并”。
- 主代理按
pr merge --merge的分支处理规则:- 默认保留已合并的远端和本地 head branch 状态;
- 以
branch-preserved披露未删除原因; - 只有确认 head 是可删除的临时分支时才显式使用
--delete-branch; - 显式删除会清理 Git 已登记、分支精确匹配、非主 worktree 且状态干净的本地 worktree,不按目录名称限制;
- 本地 closeout 仍会快进位于 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;当前用于 HWLABv0.3。--keep-branch保留为兼容的显式声明;只有明确需要保留本地 worktree 状态时才使用--skip-local-closeout。- 只有 ancestry 和语义吸收都明确安全时才使用 squash。
- 功能实现和 skill 在 merge 前用一个 PR 收口;TaskTree ExecutionReport 不作为仓库文件提交。遗留 MDTODO 按
$unidesk-tasktree迁移。 - merge commit 与合并时间由 GitHub PR 事实和
gh pr merge默认摘要保存,不要求回写 TaskTree。成功合并后不机械执行pr view;只有默认输出缺少必要字段或需要定点排障时才查询。 - 只有 merge 后才产生新的运行面证据,并且用户明确要求将该证据写回 Git 时,第二个 closeout PR 才合理。
同一 PR 的 closeout 应在 merge 前写明 source branch、验证证据和残余风险。