Skip to content
Back to skills

Land

ASecurity

Finish a development branch. Use when implementation is complete and the work needs to be merged, pushed as a PR, kept, or discarded.

  • 10 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 1, 2026
code-qualitygogit

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 1, 2026

npx -y skills add pwguler/skills --skill land --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Land?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Land
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pwguler-land/badge)](https://www.skillsdirectory.com/skills/pwguler-land)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: land
description: Finish a development branch. Use when implementation is complete and the work needs to be merged, pushed as a PR, kept, or discarded.
---

Nothing lands unverified.

Fast path: when the diff is small and the user already named the path in the invocation (merge, PR, keep, discard): skip the options menu and go. On the merge path, if the merge is a fast-forward, skip the post-merge test re-run; a fast-forward produces the exact tree `verify` just passed. Any divergence from the base branch voids this: diverged merge results are new trees and get the full re-run. The spec question is not part of the fast path: when a spec exists and its fate was not named in the invocation, ask it even here: one line, default keep.

1. Open a todo list with these steps as its items before you run anything; when a todo list is already open, add them to it. Each step is its own item; a list of fewer than three items is not opened. A step the chosen path does not take stays as `skip: <reason>`.
2. Run the `verify` skill, or reuse its evidence record when the tree hash is unchanged. Then the `rubric` skill, when the diff carries a quality surface (a UI, a public interface, a name, prose) or the spec has a criterion that names a quality rather than a behavior: the final gate is a fresh judge, never the maker. `rubric` picks its criteria sources and writes the criteria before it reads the diff. Failing work does not reach the options menu.
3. Detect the environment: normal checkout, named-branch worktree, or detached HEAD (externally managed workspace).
4. Present exactly these options, no essay: merge locally to the base branch / push and open a PR / keep the branch as-is / discard. Detached HEAD drops the merge option. Discard requires the user to type "discard".
5. On merge and PR paths, close the spec: route durable residue out (a decision worth keeping becomes an ADR per [decision-record.md](references/decision-record.md), a settled term goes to `CONTEXT.md` per [terms.md](references/terms.md), a change to the system's shape updates `ARCHITECTURE.md` per [architecture-format.md](references/architecture-format.md), creating it if absent). Then ask what happens to the spec file itself (keep it, or delete it) and say which is the default in the same breath: **keep unless the user asks otherwise**. Routing the residue is not optional and happens either way; only the file's fate is the user's call. A named path in the invocation ("land: merge, drop the spec") answers the question already: do not ask twice. Keep path leaves the spec in place without asking; it is still steering.
6. Write the PR body and the merge commit message from the spec: lead the body with the demo (the `verify` evidence: what was run and what it showed, or how to exercise the change), then the goal as the summary line, acceptance criteria as the change list, non-goals as scope notes. The reasoning enters the permanent record where `git blame` points, whether or not the file survives.
7. Merge path, in this order: from the main checkout merge the branch, test the merged result (a matching evidence record counts), remove the worktree, then delete the branch. Branch deletion before worktree removal fails; worktree removal from inside the worktree fails.
8. PR and keep paths preserve the worktree; the user needs it to iterate.

Rules:

- Never force-push, never amend a published commit, and no `--no-verify` or `reset --hard` on a dirty tree without an explicit ask.
- Never delete a spec the user did not ask to delete. Silence is not consent; unanswered means keep.
- Never remove a worktree the harness created; only clean up ones under `.worktrees/` or `worktrees/`. Run `git worktree prune` after removal.
- Never merge untested: the merged result runs the tests unless its tree hash matches the evidence record, which a fast-forward's does.
- Merge conflicts are resolved by intent, hunk by hunk, each side traced to its source; `--abort` is not a resolution.

Deep mode (the `deep` skill is active): voids the whole fast path: full menu, unconditional re-run, and the spec question asked explicitly rather than inferred.

Files in this skill

  • SKILL.md4.1 KB
  • references/architecture-format.md1.2 KB
  • references/decision-record.md1.9 KB
  • references/terms.md2.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…