gstack/ship
Benjamin D. Smith d67e0bd168 feat(ship): add Step 1.5 pr-prep gate before merge + tests
`/ship` now invokes `/pr-prep --base $BASE_BRANCH --json` with
`GSTACK_FROM_SHIP=1` before any of: merge base branch, run tests,
version bump, push. If pr-prep returns EXACT_DUP (exit 1), ship
aborts with a pinpoint message naming the upstream PR + resolution
paths (close mine / cherry-pick unique parts / coordinate + retry
with `--skip-pr-prep`).

Skip conditions:
- No upstream remote configured (solo-repo case)
- `--skip-pr-prep` flag (override)
- pr-prep skill not installed (older gstack — stderr warn + continue)

SIBLING / OVERLAP / CLEAN buckets do NOT block. The JSON report is
written to `/tmp/ship-pr-prep.json` so Step 19 (PR body assembly)
can render upstream context as a collapsed section. Helps reviewers
triage faster.

Catches the real bug class motivating the new skill: contributor
pushes branch with N commits, M of N duplicate already-open upstream
work, reviewer closes the dups, branch cleanup churn. /ship now
fails fast before any test run wastes time on a doomed branch.
2026-05-26 00:09:08 +10:00
..
SKILL.md feat(ship): add Step 1.5 pr-prep gate before merge + tests 2026-05-26 00:09:08 +10:00
SKILL.md.tmpl feat(ship): add Step 1.5 pr-prep gate before merge + tests 2026-05-26 00:09:08 +10:00