← ClaudeAtlas

ship-featurelisted

Drives a one-line feature brief to a green, review-clean PR — autonomously — in whatever project the current directory belongs to: question-first intake, durable spec, implement, local gates (simplify, optional codex CLI review, build/lint/test vs baseline, adversarial review, a REAL user-perspective end-to-end verification), open the PR READY, loop the configured review bots to zero unresolved threads at the head SHA, hand back for ONLY the merge decision (or merge through the fail-closed gate script under an explicit in-chat grant), then validate the release. First run in a new project onboards itself: detects the stack, interviews the user, writes a profile. Use whenever the user asks to build, add, implement, wire up, or ship a feature or non-trivial behavior change in this project, end to end. Do NOT trigger for a single typo or copy tweak, read-only questions or research, reviewing an already-open PR, or promoting a merged change to production.
moamamun/ship-feature · ★ 0 · AI & Automation · score 73
Install: claude install-skill moamamun/ship-feature
# /ship-feature — brief → green, review-clean PR (human only at the merge) **The house contract:** a one-line brief and the time go in; a green, review-clean PR comes out; the human is pulled in **only at four sanctioned touchpoints** (onboarding/intake questions, spec sign-off, credential handoffs, the merge decision). Do not ask the human to babysit intermediate steps — fix, re-run, and *prove* each gate autonomously. `$ARGUMENTS` is the brief; if empty, ask for it first. Every project binding — repos, bases, gate commands, bots, what a real E2E means here — comes from **the profile** (Phase −1); this file hardcodes none of them. The durable contract for the run is `$WT/.ship/<feature>/spec.md`; the durable **resume state** is `$WT/.ship/<feature>/state.md` — re-read both after any compaction to counter context rot. --- ## §0 Conventions — the ONE canonical copy (references say "see SKILL.md §0"; never re-define) **Your cwd resets and your env vars DO NOT persist between Bash calls** (this runs as a subagent). Make every command self-contained: absolute paths everywhere, re-source the profile in any call that reads a `$SHIP_*` value, never assume a variable set in a prior call. ```bash SKILL="${CLAUDE_SKILL_DIR:-$HOME/.claude/skills/ship-feature}" # resolve once, verify: ls "$SKILL"/scripts/ # MUST list: preflight.sh codex-gate.sh review-gate.sh merge-gate.sh # Any of the four missing or not executable ⇒ mis-installed → STOP, tell the human. # Project key — saniti