post-mergelisted
Install: claude install-skill ndisisnd/msg
# post-merge
**The** ship gate. Runs after `/pre-merge` has opened a feature→staging PR, and
takes it the rest of the way: onto `staging` (tested by a human), then onto
`main` (production, double-confirmed). It is the **only** skill in the harness
that merges — pre-merge opens PRs but never merges; eng commits to feature
branches but never pushes to `staging`/`main`. Nothing reaches `main` any other
way. Runs are independent **except** for the production **release lock** (C8): a
`--production` ship serializes against any other in-flight production run via a
remote `release-lock-<prod>` tag, so two releases never race on `prod` (silent when
uncontended — a solo dev feels no friction; `refs/production.md` § *Release lock*).
```
pre-merge (PR feature→staging) → post-merge --staging → (human tests staging)
→ post-merge --production → (double-confirm) → PR staging→main → main (live)
```
## Usage
- `/post-merge --staging` — merge the current feature→staging PR on green CI, deploy staging, verify the deploy per release model (smoke the live target for `deploy` platforms; submission-accepted + backend-health for `submission` platforms), emit a human test script, and stamp sign-off on approval
- `/post-merge --staging --prd <path>` — name the shipped PRD explicitly (else resolved from the PR head branch `feat/prd-<n>-*`)
- `/post-merge --production` — open + merge the double-confirmed staging→main release PR and run the production deploy
- `/post-merge --production -