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

46 lines
1.9 KiB
Markdown

---
name: land-branch-without-checkout
description: "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
```bash
# 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.