shiplisted
Install: claude install-skill haingt-dev/agent
# Ship
Pre-flight → Lint/Format → Test → Review → Docs → Commit.
## Usage
```
/ship [commit message]
```
If no commit message provided, auto-generate one from the changes.
## Failure Behavior
When any step fails, output a structured block and STOP:
```
## Blocked: Step N (Step Name)
- tool: N errors in file.ext
- L45: specific error message
- L78: specific error message
- Fix these issues, then run /ship again.
```
Ship is stateless — always restarts from Step 1. No resume, no auto-fix loops.
## Step 1: Pre-flight
Run `git status`. If there are no changes (nothing staged, no modifications, no untracked files), report "Nothing to ship" and stop.
**Safety checks:**
- Detached HEAD (`git symbolic-ref HEAD`) → warn and stop: "Detached HEAD — checkout a branch first."
- Ongoing rebase/merge (check for `.git/MERGE_HEAD`, `.git/rebase-merge/`, `.git/rebase-apply/`) → warn and stop: "Rebase/merge in progress — resolve it first."
**Commit message validation** (if `$ARGUMENTS` provided):
- Validate against conventional commits: `^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\(.+\))?!?: .+`
- If invalid, show format guide and stop:
```
Invalid commit message format. Expected:
type(scope): description
Types: feat fix docs style refactor perf test build ci chore revert
Examples:
feat(auth): add JWT token validation
fix: handle null response from API
```
## Step 2: Lint & Format
Auto-detect and run linters/formatters. Fast gate — fa