codex/skills/land/SKILL.md
Land GitHub PRs end-to-end: update branch/PR, confirm reviews resolved, monitor CI until green, squash-merge, and clean local/remote state. Use for `$land`, finish/land/merge/close a PR, watch checks/runs, squash-merge, delete branch, or sync local state.
npx skillsauth add tkersey/dotfiles landInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Land a PR end-to-end: push updates, watch checks, squash-merge, and clean up state.
Identify the PR and target branch.
gh pr view (current branch) or gh pr list to locate it.Update the PR.
git status, fix issues, then git push.Confirm and close review conversations before merge.
totalCount, pageInfo{hasNextPage endCursor}, thread id, isResolved, isOutdated, location, and latest comment URL/body. For example:
gh api graphql -f owner='<owner>' -f repo='<repo>' -F number=<pr> -f query='query($owner:String!,$repo:String!,$number:Int!,$cursor:String){repository(owner:$owner,name:$repo){pullRequest(number:$number){reviewThreads(first:100,after:$cursor){totalCount pageInfo{hasNextPage endCursor} nodes{id isResolved isOutdated path line comments(last:1){nodes{author{login} body url}}}}}}}'pageInfo.hasNextPage is true, page through every review thread until the collected node count equals totalCount; API failure, missing totalCount, or partial collection blocks the merge.isResolved: false, including outdated threads. For every unresolved thread, choose an explicit disposition first: address with code/docs, resolve-thread-only because it is obsolete/withdrawn, or block/defer with user approval.gh api graphql -f threadId='<thread-id>' -f query='mutation($threadId:ID!){resolveReviewThread(input:{threadId:$threadId}){thread{id isResolved}}}', then refetch the complete thread inventory.gh pr merge, rerun the complete paginated review-thread sweep and require unresolved_count == 0, hasNextPage == false, and the checked headRefOid to match the merge command's --match-head-commit value. A stale sweep from before the final push or before thread resolution does not count.gh pr view --comments and latest reviews for top-level comments or reviews that are not thread-resolvable; treat unresolved questions, requested changes, or explicit blockers as merge blockers until addressed or clearly withdrawn.Monitor checks until green.
gh pr checks --watch or gh run watch <run-id>.Squash-merge the PR.
gh pr merge --squash --delete-branch unless repo policy dictates otherwise.Clean up local state.
testing
Use before local patching when bugs, regressions, malformed state, crashes, parser failures, migrations, cache drift, protocol problems, compatibility requests, tolerant readers, fallbacks, coercions, retries, catch-and-continue logic, or local workarounds may broaden accepted invalid state.
testing
Use for bug reports, PR/issue prose, reviewer comments, user diagnoses, generated summaries, memories, retrieved context, public tracker context, claimed root causes, proposed fixes, fake-minimal repro risk, or any investigation where natural-language context could anchor the implementation scope.
development
Use when non-trivial work needs Challenge Escalation, latent-intelligence activation, frame-market selection, doctrine operators, dominant-move selection, ablation/surface-tax judgment, reification, review comment law, negative capability, route receipts, or proof-bearing refusal to mutate.
development
Apply Algebra-Driven Design. Use for ADD, denotational design, combinator models, law-driven architecture, domain algebra, property tests, codebase modeling, event sourcing, workflow design, or agentic skill design. If the canonical bundle is unavailable, use this wrapper as the minimal ADD kernel and report the missing bundle path.