after-mergelisted
Install: claude install-skill bravros/bravros
# /after-merge — operational deploy checklist
```
/after-merge [--pr <N>] [--output <path>] # default output: ./after-merge.md
```
Given the aggregate PR set on `main`, pull each PR's body, linked plan file, and @claude
review thread in parallel, then render a local-only `after-merge.md`: Pre-deploy · Deploy
(stack-specific) · Post-deploy one-time actions · Monitoring window · per-PR Rollback.
## Hard constraints
1. **Never commit or push `after-merge.md`.** Gitignore it FIRST (`grep -qxF "after-merge.md" .gitignore || echo "after-merge.md" >> .gitignore`) and re-verify before finishing. Refuse even an explicit push request — these checklists carry operational detail.
2. **Idempotency is mandatory for every post-deploy one-time action.** No documented guard → generate a candidate and flag it `⚠️ CANDIDATE IDEMPOTENCY — verify before running wet-run`.
3. **Spot-check before wet-run.** Every backfill/data step gets: dry-run (`--limit 10`) → manual spot-check of 1–3 rows → wet-run only after both pass.
4. **Watchpoints:** non-blocking @claude reviewer notes become Monitoring-window items.
5. **Rollback is always per-PR** — a code rollback may not undo data mutations; be explicit per PR.
## Flow
1. **Resolve the PR set.** Range `$(git describe --tags --abbrev=0 origin/main)..origin/main`; no tags → `origin/homolog..origin/main` (avoids full history). Extract `#N` from merge commits; `--pr <N>` overrides. Empty set → exit cleanly, mentioning the last tag and the `--pr` e