stage-shiplisted
Install: claude install-skill m4ttstack/skills
# stage: ship
{{stage.fields}}
## Run state
Contracts v2 and v3 (authoritative text: the parameterized-skills skill's convention reference).
- First action: `rt runs stage-start --stage ship`
- Read consumed fields with `rt runs field get <key>` before
deriving or asking for them.
- Write each declared produce the moment it exists:
`rt runs field set <key> <value> --stage ship`
- Last action on success: `rt runs stage-done --stage ship`;
on failure: `rt runs stage-fail --stage ship --reason
"<what actually failed>"` before you report it.
## Gate `ship` (before the push, bound or unbound)
- `rt runs field set gate ship --stage ship`
- One sentence: the branch, the commits about to go (`git log --oneline
@{upstream}.. 2>/dev/null || git log --oneline -5`), and whether the
tree is dirty.
- The form: on a dirty tree, **Commit the changes** / **Stash them** /
**Abort**; **Push and open as draft** (recommended) / **Push and open
ready**; every question the domain rules below declare for this gate
(a ticket mismatch, an MR already open); **Iterate here**; **Go back to
`<stage>`**; **Hold**.
- `rt runs decision record --contract gate@1 --scope ship --selection '{"dirty":"commit|stash|abort|null","open_as":"draft|ready","domain":{<answers>},"next":"proceed|iterate|redirect|hold","to":"<stage or null>","note":"<their words or null>"}' --decided-by stage-ship`
- Go back: hand control back to the orchestrator with one sentence naming
the answer; it runs `## Re