Files
command-center/agent/managed-skills/land-branch-without-checkout/SKILL.md
T

1.9 KiB

name, description
name description
land-branch-without-checkout Open a PR from a shared worktree when workspace policy blocks git checkout/restore: push a named branch ref from HEAD without switching branches.

Landing a branch when git checkout is policy-blocked

Shared-workspace policy blocks git checkout and git restore (working-tree switches could strand concurrent agents' uncommitted work). You still must ship the commit on the current worktree branch as a named chore|feat|fix/<issue>-<slug> branch. Never work around the block — go around it via refs.

Sequence

# 1. commit only your files (atomic); leave other dirty paths alone
git add <your-files> && git commit -m "..."

# 2. branch ref at HEAD — no working-tree change, stays on wt/<...>
git branch <type>/<issue>-<slug> HEAD
git push origin <type>/<issue>-<slug>          # pre-push hooks still run

# 3. PR via tracker API with head = pushed ref (see gitea-pr-api-cycle / gh)
  • The worktree stays checked out on wt/<timestamp>; the new branch exists only as the pushed ref (plus a local ref that merges cleanly later).
  • -u upstream tracking on the wt branch is misleading — skip it; set git config branch.<name>.remote origin + .merge only if you will later check the branch out.
  • Dirty regenerated fixtures left behind (e.g. gen:sample PDFs rewritten by setup/gate runs): git restore is also blocked — do NOT edit-forward to revert them; report them. They are regenerated on every bootstrap, so dirt is expected and harmless.

Verify

  • git ls-remote --heads origin <branch> prints the same sha as git rev-parse HEAD.
  • PR API returns 201 with head.sha equal to that sha.

Do NOT

  • git checkout -b, git stash, git restore, git reset --hard here — all working-tree mutations the policy can block, and stashes in a shared checkout are a cross-agent footgun.