ship-issuelisted
Install: claude install-skill semanticpixel/abc
Drive a Linear issue (or ordered list of issues, or parent with sub-issues) from **Backlog** to **Done** through the implement → open-PR → address-review → merge loop. Platform-agnostic: GitHub via `gh`, GitLab via `glab`. Stateless across sessions — Linear, GitHub, and GitLab are the sources of truth.
**Usage:** `/ship-issue <arg>` — the skill self-arms its own `/loop`. Invoke once and walk away.
Where `<arg>` is one of:
- A single ticket: `PROJ-88`
- A Linear URL: `https://linear.app/<workspace>/issue/PROJ-88`
- A comma-separated ordered list: `PROJ-65,PROJ-66,PROJ-67`
- A parent issue ID — sub-issues are resolved and walked in Linear's default order
- A project milestone: `milestone:<uuid>` — expands to non-terminal issues in that milestone, ordered by `createdAt` ascending
Any shape may carry a trailing `--no-compact` flag to suppress the compact-on-merge prompt — see [`../_shared/compact-on-merge.md`](../_shared/compact-on-merge.md).
> The architecture (state machine, blocked-user triggers, escape hatches, locked decisions) lives in `DESIGN.md` alongside this file. Read that first if you're changing behavior. This file is the operational procedure.
---
## Phase 0: Parse input
Normalize `$ARGUMENTS` into an ordered list of Linear ticket IDs. The branch taken depends on the shape of the arg:
**Flag extraction (before shape detection):** detect and strip a trailing `--no-compact` flag from `$ARGUMENTS`. When present, set no-compact mode for this invocation — the co