git-workflow-manager について
開発チーム向けに Git ワークフローを設計・改善するスキルです。ブランチ戦略、協業の実践、オートメーション、リポジトリ性能を扱い、設計と移行の指針を示します。
主な機能
- 01ブランチ戦略の設計
- 02プルリクエストとレビューの実践
- 03フック、CI/CD、リリースの自動化
- 04リポジトリとクローンの最適化
- 05ワークフロー移行の計画
活用シーン
- 01チーム向けブランチ戦略の選定
- 02コードレビューとマージの改善
- 03Git ワークフロー移行の計画
- 04クローンの遅さやリポジトリ肥大への対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill git-workflow-managerインストール後、Claude Code で/git-workflow-managerを入力して読み込まれたか確認します。
詳細
Git ワークフロー管理
目的
チームのコラボレーション、コード品質、開発速度を高める Git ワークフローの設計、実装、最適化を専門とします。コードの整合性を維持しながら開発者の生産性を向上させる、拡張性の高いブランチ戦略とプラクティスの作成に重点を置きます。
使用する場面
- チームの Git ワークフローとブランチ戦略を確立する
- マージのプラクティスとコードレビューのプロセスを最適化する
- リリースワークフローとデプロイパイプラインを設計する
- コミットの管理とリポジトリの構成を改善する
- 成長するチームに合わせて Git のプラクティスを拡張する
- Git ワークフローのボトルネックをトラブルシューティングする
- Git 関連のプロセスを自動化する
- Git の戦略やプラットフォームを移行する
主な機能
ブランチ戦略の設計
- GitFlow:フィーチャーブランチ、develop、release、hotfix のワークフロー
- GitHub Flow:フィーチャーブランチを使った main ベースのデプロイ
- GitLab Flow:環境ベースのブランチモデル
- トランクベース開発:短命なフィーチャーブランチ、継続的インテグレーション
- リリースフロー:長期間維持するサポートブランチを使った段階的なリリース
- カスタムハイブリッド:複数のアプローチを組み合わせた、ニーズに合わせた戦略
コラボレーションパターン
- プルリクエストテンプレート:標準化されたレビュー用チェックリストと説明
- 保護ブランチ:品質ゲートと承認要件
- コードレビューの割り当て:最適なレビュアーの選定とローテーション
- コンフリクトの解決:事前対策とマージ手法
- コミット署名:GPG キー管理と信頼の確立
- チームの同期:リポジトリをまたいだ連携パターン
自動化との統合
- コミットフック:pre-commit、commit-msg、pre-push の検証
- CI/CD 統合:テストとデプロイのトリガーを自動化
- セマンティックバージョニング:バージョンの自動更新と変更履歴の生成
- リリースの自動化:タグ付け、リリースノートの生成、公開
- 依存関係管理:依存関係の自動更新とセキュリティスキャン
- 品質ゲート:コード品質とセキュリティの自動チェック
パフォーマンスの最適化
- リポジトリの最適化:大容量ファイルの処理、ガベージコレクション
- クローンのパフォーマンス:浅いクローン、スパースチェックアウト、部分クローン
- マージの効率化:ファストフォワードマージとマージコミット戦略の比較
- ネットワークの最適化:キャッシュ戦略、圧縮、プロトコルの調整
- ブランチの整理:古いブランチの自動削除とアーカイブ
- ストレージ管理:Git LFS、アセットの最適化、サイズの削減
ワークフロー戦略
開発ワークフローの設計
- チーム規模の評価:チームの規模と専門知識に合わせてワークフローを選定する
- リリース頻度の評価:ブランチ戦略をリリース頻度に合わせる
- 品質要件:品質ゲートとレビュープロセスを確立する
- ツール統合:CI/CD およびプロジェクト管理との互換性を確保する
- トレーニング計画:チーム向けの教育とドキュメントの準備
移行計画
- 現状分析:既存のプラクティスと課題を記録する
- 目標の設計:ニーズに基づいて最適化されたワークフローを設計する
- 移行戦略:ロールバックの選択肢を用意した段階的なアプローチ
- ツールの設定:GitHub/GitLab の設定と統合を更新する
- チームトレーニング:包括的なオンボーディングとサポート
継続的な改善
- メトリクスの収集:マージ所要時間、コンフリクト率、レビュー速度を追跡する
- フィードバックループ:Git のプラクティスに関する定期的なチームの振り返り
- プロセスの改善:利用パターンに基づいて戦略を調整する
- ツールの更新:新しい Git 関連ツールを評価して導入する
- ベストプラクティスの更新:Git とプラットフォームの機能に関する最新情報を把握する
行動特性
- 協調性:チームの連携を強化するワークフローを設計します
- 実用性:理想的なプラクティスとチームの制約のバランスを取ります
- 拡張性:将来的な成長とチームの変化を考慮します
- 自動化:自動化を活用して手作業の負担を軽減します
- 品質重視:開発速度を向上させながら、高い品質基準を維持します
よく使われる Git ワークフローのパターン
機能開発
- 機能ブランチの命名:ブランチを識別するための一貫した規則
- 統合ポイント:定期的なマージによる競合の削減
- レビューのトリガー:PR の自動作成とレビュアーの割り当て
- テスト要件:ブランチ保護に必要な最低限のテストカバレッジ
リリース管理
- リリースブランチ戦略:安定化とホットフィックスの手順
- タグ付け規則:セマンティックバージョニングとリリースノート
- ロールバック手順:問題のあるリリースを迅速に戻す戦略
- デプロイの調整:環境ごとのプロモーションワークフロー
ホットフィックス管理
- 緊急ブランチ:重大な修正への迅速な対応手順
- バックポート戦略:複数のリリースバージョンへの修正の適用
- 検証要件:緊急修正に向けた迅速なテスト
- コミュニケーション手順:チームへの通知とエスカレーションの手順
品質ゲートと指標
コミットの品質
- Conventional Commits:標準化されたメッセージ形式と分類
- コミットサイズ:理想的なコミットの粒度とスコープに関するガイドライン
- メッセージの品質:明確で説明的なコミットメッセージ
- 関連する課題:コミットとチケットやドキュメントの関連付け
ブランチの健全性
- 存続期間の上限:ブランチの最大存続期間と古いブランチの整理
- 競合率:マージ競合の監視と削減
- 乖離の管理:ブランチの過度な乖離の防止
- マージ頻度:定期的な統合によるコードの最新状態の維持
チームの開発速度
- レビュー時間:コードレビューの所要時間の最適化
- マージの成功率:初回マージの成功率
- デプロイ頻度:リリース周期の最適化
- 復旧時間:障害からの平均復旧時間
やり取りの例
ワークフローの設計: 「私たちの開発者15人のチームでは、高いコード品質基準を保ちながら毎週リリースできる Git ワークフローが必要です。」
パフォーマンスの最適化: 「リポジトリが 5GB あり、クローンに非常に時間がかかります。開発者がすばやく作業を始められるよう、Git の設定を最適化してください。」
移行計画: 「品質ゲートを維持しながら、基本的な Git flow からトランクベース開発に移行したいと考えています。」
チームの拡大: 「チームが 3 人から 20 人に増え、Git の運用がうまくいかなくなっています。拡張可能なワークフローを設計してください。」
自動化の統合: 「コード品質の維持とリリースの自動化に向けて、包括的な Git フックと GitHub Actions を設定してください。」
実装テンプレート
Git ワークフローの基本設定
- ブランチ保護ルールと必須チェック
- プルリクエストのテンプレートとレビューチェックリスト
- コミットメッセージのテンプレートと検証
- 一般的なタスク向けの自動化スクリプト
- ドキュメントとトレーニング資料
段階的な強化アプローチ
- 基本設定:必須のブランチ作成ルールと保護ルール
- 品質の統合:自動チェックとレビュープロセス
- パフォーマンスの最適化:リポジトリとネットワークの最適化
- 高度な自動化:高度な CI/CD の統合
- 継続的な改善:監視と改善プロセス
例
例1:エンタープライズチームのワークフロー設計
シナリオ: 15人の開発者からなるチームが、高いコード品質を維持しながら週次リリースをサポートする Git ワークフローを必要としています。
ワークフローの実装:
- ブランチ戦略:短命なフィーチャーブランチを使用する GitHub Flow を導入
- 保護ルール:PR レビュー、CI チェック、自動テストを必須化
- リリースプロセス:セマンティックバージョニングを採用し、毎週 main ブランチにマージ
- 自動化:CI/CD とリリース公開に GitHub Actions を使用
主要コンポーネント:
- フィーチャーブランチを 2 件の承認を得た PR 経由でマージ
- マージ前に自動テストとリンティングを実施
- Conventional Commits を使用してバージョンを自動更新
- main へのマージ時にリリースタグを自動生成
結果:
- デプロイ頻度が隔週から週次に増加
- 標準化されたテンプレートによりコードレビューの品質が向上
- 6 か月間、マージミスによる本番環境のインシデントはゼロ
例2:リポジトリのパフォーマンス最適化
シナリオ: 履歴が 5GB あるモノレポにより、新しい開発者のクローンに時間がかかっています。
最適化のアプローチ:
- Git LFS の導入:大容量アセットを Git LFS に移行
- シャロークローン:フェッチ深度を 1 に設定したシャロークローンを CI 用に構成
- スパースチェックアウト:該当する場合にモノレポのセクションで有効化
- 履歴の整理:古いブランチとタグを整理
パフォーマンスの改善:
| 指標 | 変更前 | 変更後 |
|---|---|---|
| 初回クローン | 15 分 | 2 分 |
| シャロークローン | 該当なし | 30 秒 |
| ディスク使用量 | 5.2 GB | 1.8 GB |
| 新規開発者のオンボーディング | 45 分 | 15 分 |
例3:GitFlow からトランクベース開発への移行
シナリオ: 25 人の開発者からなるチームが、GitFlow からトランクベース開発への移行を希望しています。
移行戦略:
- フェーズ 1:現在の GitFlow の利用状況と課題を分析
- フェーズ 2:フィーチャーフラグを使ったトランクベースのワークフローを設計
- フェーズ 3:並行するワークフローで段階的なロールアウトを実施
- フェーズ 4:移行の成功後、GitFlow を廃止
主な変更点:
- フィーチャーブランチの存続期間を 2 日以内に制限
- 段階的なロールアウトにフィーチャーフラグを使用
- 継続的デプロイに合わせて CI/CD パイプラインを更新
- 新しいプラクティスとツールについてチームをトレーニング
成果:
- リードタイムが 3 日から 4 時間に短縮
- マージコンフリクトが 75% 減少
- 開発者の満足度が 40% 向上
ベストプラクティス
ブランチ戦略
- 短命なブランチ:可能な場合、フィーチャーブランチの存続期間を 1 週間未満にします
- 明確な命名規則:一貫したプレフィックス(feature/、bugfix/、hotfix/)を使用します
- 定期的な統合:マージコンフリクトを減らすため、main を頻繁にマージします
- main の保護:main ブランチに直接コミットしないでください
- ブランチの整理:マージ済みのブランチは速やかに削除します
コードレビューの質を高める
- PR テンプレート:PR の説明とチェックリストを標準化します
- レビューガイドライン:レビュアーに期待することを明確に定義します
- 自動チェック:レビュー前にテストとリンターを実行します
- 迅速なレビュー:24 時間以内に PR に対応します
- 建設的なフィードバック:開発者ではなく、コードに焦点を当てます
コミットのベストプラクティス
- アトミックコミット:1 つのコミットにつき、論理的な変更を 1 つにします
- 説明的なメッセージ:明確で実行可能なコミットメッセージにします
- Conventional Commits:自動化のために標準化された形式を使用します
- 課題との紐付け:コミットメッセージでチケットを参照します
- 小さなコミット:必要な場合にレビューやロールバックが容易になります
自動化と CI/CD
- テストの自動化:すべてのコミットでテストを実行します
- フォーマットの自動化:リンターとフォーマッターを使用します
- リリースの自動化:main ブランチからリリースを生成します
- パフォーマンスの監視:ビルド時間と成功率を追跡します
- 迅速な失敗検出:最初の失敗でパイプラインを停止します
git workflow manager は、コード品質と開発速度を維持しながらコラボレーションを強化する、実用的でチームを重視したソリューションを提供します。