shiplisted
Install: claude install-skill kompiro/hane
# Ship Workflow
コミット済みの変更を PR 作成 → CI 確認 → クリーンアップまで進める。
`/start-dev` を使わずにブランチで直接開発した場合にも対応する。
## 前提条件
- `gh auth status` で GitHub 認証済みであること
- 現在のブランチが `main` でないこと(機能ブランチ上であること)
- コミット済みの変更があること
## ホスト repo に依存する慣習について
`/start-dev` skill と同じ optional 仕様に従う。`status: *` ラベル運用、preview deploy URL 表示、CHANGELOG 維持などはホスト repo が当該慣習を採用している場合のみ実行する。
## 手順
### 0. 状態確認
スキル開始時��現在の状態を自動検出する。
1. 現在のブランチ名を取得する: `git branch --show-current`
2. `main` ブランチ上の場合はエラーメッセージを表示して終了する
3. 未コミットの変更を確認する: `git status --porcelain`
- 未コミットの変更がある場��、`/commit` スキルを実行してコミットする
- コミット完了後、後続の処理を続行する
4. main からの差分コミット一覧を取得する: `git log --oneline origin/main..HEAD`
- コミットがない場合はエラーメッセージを表示して終了する
5. worktree 内かどうかを判定する: `git rev-parse --show-toplevel`
- パスに `.claude/worktrees/` または `.worktrees/` を含む場合は worktree 内と判定する
6. **依存関係をインストールする**(`package.json` がある場合のみ)
- worktree 直後 / main から切り替えた直後 / lock file が更新された直後は `node_modules` が古く、pre-push hook の typecheck や test が依存不足で失敗する
- 後続の commit / push より前に必ず実行する。host が lefthook / husky / pre-commit を採用している場合、install の `prepare` スクリプトで pre-push hook も設置される
- パッケージマネージャは `package.json` の `packageManager` フィールドまたは lock file(`pnpm-lock.yaml` / `package-lock.json` / `yarn.lock`)から検出する
- ロックファイルが最新なら即座に完了する
7. 関連 Issue を検出する:
- ブランチ名からパターンマッチ(例: `feat/issue-42-xxx` → #42)
- コミットメッセージ内の `#N` パターン
- 見つからない場合はユーザーに Issue 番号を確認する(なしも可)
8. **CHANGELOG の追記を確認する**(ホスト repo が CHANGELOG を維持している場合のみ。リポジトリ直下に `CHANGELOG.md` が無い、または Keep a Chang