ReferenceCLI

vx land

Land a finished mission's work into this project's base branch

Land a finished mission's work into this project's base branch.

Usage:
  vx land <task-id>

Fast-forwards this project's own checkout to the mission's branch.
Refuses (leaving everything untouched) unless this checkout is clean and
the merge is a clean fast-forward - never forces or rebases anything. It
also refuses when the mission's branch has no commit ahead of the base
branch: there is nothing to land, so it says so instead of reporting
"landed", and leaves the camp and the task as they were.

Once that fast-forward merge succeeds, land automatically strikes the
mission's camp, returning it to the pool and closing its herdr pane too - the same
strike logic 'vx strike' itself uses, which only clears a camp
that's already clean and landed, so this doesn't relax that safeguard. A
merge that's refused (dirty checkout, or diverged branch) never touches
the camp at all. In the rare case the merge succeeds but that automatic
strike then fails, land reports both outcomes plainly (the merge is
NOT undone) and leaves the camp for 'vx strike <task-id>' to
retry by hand.

For a task already shipped through vexillum's own tribunal pipeline
('vx ship'), this instead merges the real pull request on GitHub -
the PR, not the camp's own branch, is the source of truth once the
general (or CI, or a reviewer) may have pushed further commits directly
to it on GitHub. Requires "gh". Refuses unless the pull request is open,
not a draft, mergeable, and every check is green; the merge is bound to
the exact head just verified. This path never auto-strikes: the branch
is still in flight until the general merges the real PR.