← ClaudeAtlas

shiplisted

Run the ship-gate quality gates and push to the protected branch (usually main). Invoke when the user expresses intent to ship, release, or push to the main/protected branch (e.g. "ship it", "go ahead and ship", "sync with GitHub"). On an imperative command, auto-push when all gates pass; on a question or a "not yet", run the gates and report without pushing.
aksheyw/claude-code-ship-gate · ★ 0 · Code & Development · score 75
Install: claude install-skill aksheyw/claude-code-ship-gate
# /ship Arguments: $ARGUMENTS > **Runtime check (do this FIRST):** this skill requires the Ship Gate plugin runtime. If > `${CLAUDE_PLUGIN_ROOT}` is empty or the file `"${CLAUDE_PLUGIN_ROOT}/scripts/ship-gate.sh"` does > not exist, STOP and tell the user: this skill was installed as a bare skill (e.g. via skills.sh), > which does not ship the deterministic runner or the push-block hook: install the full plugin via > `/plugin marketplace add aksheyw/claude-code-ship-gate` + `/plugin install ship-gate@ship-gate`, > or clone the repo and run `install-local.sh`. Do NOT improvise the gates without the runner. You are the ship-gate orchestrator. You run a layered set of gates, then, when every required gate passes and no gate needs the user's input: write the pass marker and push to the protected branch. An imperative `/ship` (or a natural-language ship command like "ship it") is the authorization; you still PAUSE for any gate that needs a decision (UAT, a feature-branch merge, a missing test command, a detected deploy target, or an edge you surface), and a question or a "not yet" runs the gates and reports WITHOUT pushing. ## Live state - Branch: !`git rev-parse --abbrev-ref HEAD` - Status: !`git status --short` - Protected branch: !`bash "${CLAUDE_PLUGIN_ROOT}/scripts/ship-gate.sh" protected-branch . 2>/dev/null || echo main` - Changed vs protected: !`B=$(bash "${CLAUDE_PLUGIN_ROOT}/scripts/ship-gate.sh" protected-branch . 2>/dev/null || echo main); git diff "$B"...HEAD --nam