| name | land |
| description | Land a ready branch - push, PR, pinned CI watch, squash-merge, issue verification, cleanup. Use for every PR landing; encodes the run-ID pinning and cleanup discipline. |
| argument-hint | <branch> [worktree-path] |
Land a Branch
Take a committed branch through push → PR → CI → merge → cleanup. One invocation per branch; serialize when branches share files.
Arguments
$ARGUMENTS — branch name; optionally the worktree path holding it (default: search git worktree list).
Pre-flight
pwd + git branch --show-current in the branch's checkout — CWD drift is real: finished background agents move the orchestrator's shell CWD. Anchor every command with explicit cd.
- Branch is committed and clean (
git status --short empty).
- Merge current main in:
git fetch origin main && git merge origin/main. On conflict in triage tables → union-of-flips; in tests → usually keep both.
- Re-gate after the merge: targeted tests for touched modules (
cargo test --features cuda-index --lib <filter> with a private CARGO_TARGET_DIR), and the provenance lint:
git diff origin/main...HEAD -- '*.rs' | python3 scripts/check_comment_provenance.py
CI diffs the merge ref, so MOVED comment lines count as added — a local pass on the pre-merge diff can be a false negative.
Push and PR
- Push:
git push origin <branch> (direct WSL usually works; on "could not read Username" fall back to powershell.exe -Command "cd C:\Projects\cqs; git push origin <branch>").
- Body to
/mnt/c/Projects/cqs/pr_body.md (NEVER inline; must live on C: for Windows gh). Include closes #N for every issue the branch resolves. Delete the file after.
powershell.exe -Command 'cd C:\Projects\cqs; gh pr create --head <branch> --title "..." --body-file pr_body.md'
CI — pin the run ID
gh pr checks --watch latches onto the PREVIOUS commit's completed run. Always:
sleep 50
powershell.exe -Command 'gh run watch $(gh run list -R jamie8johnson/cqs --branch <branch> --workflow CI --limit 1 --json databaseId --jq ".[0].databaseId") -R jamie8johnson/cqs --exit-status'
Background this (run_in_background) and do other work; the notification carries the exit code.
Merge and verify
- On green:
powershell.exe -Command 'gh pr merge <N> -R jamie8johnson/cqs --squash --delete-branch', then confirm gh pr view <N> --json state == MERGED.
- Verify every linked issue actually closed (
gh issue view <N> --json state); close manually with a PR pointer if GitHub missed it. "Partially addresses" PRs: comment the remaining scope on the issue instead.
- Cleanup:
cd /mnt/c/Projects/cqs && git pull origin main --ff-only, git worktree remove <path> --force, git branch -D <branch>, cqs index (inotify misses bulk git ops on /mnt/c).
On CI failure
Read the failing job log before touching anything (gh run view <id> --log-failed). Provenance-lint failures → scrub audit IDs from comments (state the invariant instead). Don't retry CI blind.