Issue 作成から PR 作成まで自動実行する統合開発ワークフロー。
Automates end-to-end development workflow from issue creation to PR submission.
/plugin marketplace add shiiman/claude-code-plugins/plugin install shiiman-git@shiiman-claude-code-pluginsIssue 作成から PR 作成まで自動実行する統合開発ワークフロー。
/shiiman-git:dev-flow # 最新の計画書から実行(デフォルト)
/shiiman-git:dev-flow --plan # plan mode で計画書を新規作成
/shiiman-git:dev-flow タスク詳細 # 計画書なしで直接実行(簡単なタスク用)
/shiiman-git:dev-flow --help
| オプション | 説明 |
|---|---|
--plan | plan mode で計画書を新規作成してから実行 |
--help | このコマンドのヘルプを表示 |
/shiiman-git:dev-flow
既存の承認済み計画書から直接実行。
[既存計画書] → Issue作成 → ブランチ作成 → 実装 → ... → PR作成
/shiiman-git:dev-flow --plan
plan mode を使って計画書を作成・承認してから実行。
[ユーザー入力] → plan mode → 計画書作成 → 承認 → Issue作成 → ... → PR作成
/shiiman-git:dev-flow 〇〇を追加する
計画書を作らず、タスク説明から直接実行。簡単なタスク向け。
[タスク説明] → Issue作成 → ブランチ作成 → 実装 → ... → PR作成
Issue作成 → ブランチ作成 → 実装 → 自己レビュー → [確認] → Issue更新 → コミット → プッシュ → PR作成
--help が指定された場合: このファイルの内容を要約して表示し、終了。
--plan の場合 → モード 2(計画書作成モード)--plan / --help 以外の文字列の場合 → モード 3(直接実行モード)重要: このモードでは plan mode を使用しません。
EnterPlanMode ツールを使用しないでください.claude/plans/ ディレクトリから最新の計画ファイルを読み込みます。
ls -t ~/.claude/plans/*.md | head -1
計画書が見つからない場合:
## 計画書が見つかりません
計画書が見つかりませんでした。
### 代替手段
- `/shiiman-git:dev-flow --plan` で新しい計画を作成
- `/shiiman-git:dev-flow タスク説明` で直接実行
計画書が見つかったら、ステップ 1 から実行。
EnterPlanMode ツールを使用して plan mode に入ります。
EnterPlanMode を実行して plan mode に入る.claude/plans/ に保存される)plan mode での計画書作成後、以下のステップを実行:
重要: このモードでは plan mode を使用しません。
EnterPlanMode ツールを使用しないでくださいタスク説明を確認し、直接ステップ 1 から実行。
gh issue create で Issue を作成:
gh repo view --json owner,name
gh issue create --title "{タイトル}" --body "{本文}" --label "{ラベル}"
Issue タイトル: タスク内容を簡潔に(50文字以内)
Issue ラベル:
enhancement: 新機能bug: バグ修正documentation: ドキュメントimprovement: リファクタリングIssue 本文フォーマット:
## 概要
{タスクの目的・背景}
## タスク
- [ ] {サブタスク1}
- [ ] {サブタスク2}
- [ ] {サブタスク3}
## 完了条件
- {達成すべき条件1}
- {達成すべき条件2}
git fetch origin main
git checkout main
git pull origin main
git checkout -b feature/{issue番号}
ブランチ名プレフィックス:
enhancement → feature/{issue番号}bug → fix/{issue番号}documentation → docs/{issue番号}improvement → refactor/{issue番号}Issue の内容に基づいてコードを実装:
各サブタスクの実装が完了したら、バックグラウンドエージェントを使用して Issue のチェックボックスを更新します。これにより、実装作業を中断せずに進捗を Issue に反映できます。
実行方法:
サブタスク完了時に、Task ツールを run_in_background: true で実行:
Task tool を使用:
subagent_type: "general-purpose"
run_in_background: true
prompt: |
Issue #{issue番号} のタスクチェックボックスを更新してください。
完了したタスク: "{完了したサブタスク名}"
手順:
1. gh issue view {issue番号} --json body --jq '.body' で本文取得
2. 該当タスクの "- [ ]" を "- [x]" に変更
- 本文に改行やクォートが含まれる場合は適切にエスケープ
3. gh issue edit {issue番号} --body "{更新後の本文}" で更新
エラー時:
- Issue が閉じられている場合はスキップ
- 権限不足の場合は警告のみ出力
- 更新失敗してもメイン処理には影響させない
更新ルール:
- [ ] {サブタスク} → - [x] {サブタスク} に変更注意: Issue 更新の成否に関わらず、メインの実装作業は継続します。
セキュリティチェック:
git status
以下のパターンを検出したら警告:
.env* - 環境変数*.pem, *.key - 秘密鍵credentials.json - 認証情報node_modules/, vendor/ - 依存パッケージ自己レビュー:
git diff
以下の観点でチェック:
重要: ここでユーザーに確認を求める。
## 変更内容の確認
以下の変更をコミットします:
{git diff --stat の出力}
### 変更ファイル一覧
{変更ファイルリスト}
### 自己レビュー結果
{レビューで確認した内容のサマリー}
### コミットメッセージ
{自動生成されたメッセージ}
この内容でコミット・プッシュ・PR作成を実行してよろしいですか?
ユーザー確認後、コミット前に Issue の残りのチェックボックスを含め、全てを完了状態に更新します。
重要: これは同期実行で行い、結果を確認してからコミットに進みます。
手順:
Issue の現在の状態を取得:
gh issue view {issue番号} --json body,state
Issue がオープン状態であることを確認。クローズ済みの場合はスキップ。
本文内の未完了チェックボックスを完了状態に更新:
- [ ] {タスク} → - [x] {タスク} に全て置換sed や awk、gh api などで本文を取得し、- [ ] を - [x] に置換してから更新します([] や \ などの記号はシェル上でエスケープが必要になる点や、複数行本文を扱う場合は一時ファイル経由で編集すると安全な点に注意してください)Issue を更新:
gh issue edit {issue番号} --body "{更新後の本文}"
更新結果を報告:
Issue #{issue番号} のチェックボックスを更新しました({更新数}件)
エラー時の動作:
注意: この更新は、ステップ 3 のバックグラウンド更新で既に完了済みのチェックボックスも含め、全てを確実に完了状態にそろえるための最終確認として機能します(同じ Issue に対して複数回実行しても結果は変わりません)。
git add .
git commit -m "{コミットメッセージ}"
コミットメッセージ形式:
.claude/settings.json の git.commitMessage 設定を確認デフォルト形式 (Conventional Commits・日本語):
| プレフィックス | 用途 |
|---|---|
feat: | 新機能 |
fix: | バグ修正 |
docs: | ドキュメント |
refactor: | リファクタリング |
chore: | その他 |
test: | テスト |
style: | スタイル修正 |
perf: | パフォーマンス改善 |
ルール:
(#N) 形式で追加例:
feat: ユーザー認証機能を追加 (#30)
fix: ログイン時のエラーを修正 (#31)
docs: READMEを更新
※ コミットメッセージ設定は /shiiman-git:commit-message --set で変更可能
git push -u origin {ブランチ名}
gh pr create --title "{PRタイトル}" --body "{PR本文}"
PR 本文
## 概要
{変更内容の説明}
## 変更内容
- {変更点1}
- {変更点2}
## 関連 Issue
Closes #{issue番号}
## テスト計画
- [ ] {テスト項目}
## 開発フロー完了
### 作成された Issue
- #{issue番号}: {タイトル}
### 作成されたブランチ
- {ブランチ名}
### 作成された PR
- PR #{pr番号}: {タイトル}
- URL: {pr_url}
PR がマージされると Issue #{issue番号} は自動的にクローズされます。
EnterPlanMode を使用.claude/settings.json のコミットメッセージ設定に従う(設定がなければ Conventional Commits)Closes #N を使用して Issue を参照