dw-shiplisted
Install: claude install-skill dominikwozniak/dw-solo-skills
# dw-ship — push, merge, clean up
One command for both endings of a change: the small serial edit that just gets pushed, and the
worktree branch that goes out through a PR and leaves nothing behind. Everything before the merge is
reversible, right up to the HARD STOP.
## What it reads
The branch state, and `## Git conventions` for the default branch and push rules — every git
mechanic here (commit format, PR title and body, no attribution footers) is done the way `dw-git`
does it. This skill writes **no `.ai/` artifact**: its output is pushed history and a removed
worktree.
## Workflow
### 1. Preconditions
- Clean tree (`git status --porcelain`) — leftover work gets committed the way `dw-git` does, or
deliberately stashed; never shipped around.
- **Landed first.** If a `CHANGE.md` still matches this branch (the same grep `dw-next` uses), the
change hasn't been closed: run `dw-land` now — verdict, your go, close — and come back. The
promotion commit has to ride this branch; shipping before it exists strands the durable residue.
### 2. Pick the path
- Already **on the default branch** (resolved the way `dw-git` does) and it isn't protected → **fast
path**: plain `git push`. Done — there's no worktree to clean. **The push is irreversible here
too** — nothing sits between it and the default branch — so if the change skipped `dw-check`, say so
and offer it before pushing. The nudge at step 3 belongs to both endings, not just the PR one; a
fast path that reach