mcpField
W
workflow-preflight

workflow-preflight

github.com/laurigates開発5950 回インストール1 日前に更新
リポジトリ

workflow-preflight について

workflow-preflight は、作業の開始・再開前にリポジトリとブランチの状態を確認するコーディングスキルです。Git の確認と GitHub の課題・プルリクエスト検索を組み合わせ、既存の作業や差分、競合を把握します。

主な機能

  1. 01リモート情報の取得と古い参照の削除
  2. 02関連する課題・プルリクエスト・ブランチの確認
  3. 03ブランチ差分と未コミット変更の報告
  4. 04マージ競合の検出
  5. 05リポジトリの準備状況の要約

活用シーン

  1. 01機能や課題への着手前
  2. 02中断後に作業を再開するとき
  3. 03プルリクエスト用ブランチの作成前
  4. 04並行エージェントの起動前

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/laurigates/claude-plugins --skill workflow-preflight

インストール後、Claude Code で/workflow-preflightを入力して読み込まれたか確認します。

詳細

/workflow:preflight

古い状態、重複作業、ブランチの競合による無駄を防ぐための作業前検証です。

このスキルを使うタイミング

このスキルを使う場合...省略する場合...
新しい課題や機能の作業を始めるときすぐに終わる単一ファイルの編集
休止後に作業を再開するときこのセッションですでに状態を確認済みの場合
並列エージェントを起動する前分離されたワークツリーで作業する場合
PR 用のブランチを作成する前ブランチをすでに作成し、確認済みの場合

コンテキスト

  • リポジトリ:!git remote get-url origin
  • 現在のブランチ:!git branch --show-current
  • リモート追跡:!git branch -vv --format='%(refname:short) %(upstream:short) %(upstream:track)'
  • 未コミットの変更:!git status --porcelain
  • スタッシュ数:!git stash list

実行

ステップ 1:最新のリモート状態を取得
git fetch origin --prune 2>/dev/null
ステップ 2:既存の作業を確認

課題番号が指定されている場合は、すでに対応済みかどうか確認します。

# Check if issue exists and its state
gh issue view $ISSUE --json number,title,state,labels 2>/dev/null

# Check for PRs that reference this issue
gh pr list --search "fixes #$ISSUE OR closes #$ISSUE OR resolves #$ISSUE" --json number,title,state,headRefName 2>/dev/null

# Check for branches that reference this issue
git branch -a --list "*issue-$ISSUE*" --list "*fix/$ISSUE*" --list "*feat/$ISSUE*" 2>/dev/null

マージ済みの PR が存在する場合:課題はすでに対応済みであることを報告します。終了します。 オープン中の PR が存在する場合:PR を報告し、そのブランチで作業を続けるか、新しく始めるかをユーザーに尋ねます。

ステップ 3:ブランチの状態を確認
# Check divergence from main/master
git log --oneline origin/main..HEAD 2>/dev/null || git log --oneline origin/master..HEAD 2>/dev/null

# Check if main has moved ahead
git log --oneline HEAD..origin/main -5 2>/dev/null || git log --oneline HEAD..origin/master -5 2>/dev/null

# Check for uncommitted changes
git status --porcelain=v2 --branch 2>/dev/null

報告する内容:

  • リモートより進んでいる/遅れているコミット数
  • 作業に影響する可能性のある未コミットの変更
  • リベースが必要かどうか
ステップ 4:競合を確認
# Dry-run merge to detect conflicts (without actually merging)
git merge-tree $(git merge-base HEAD origin/main) HEAD origin/main 2>/dev/null | head -20
ステップ 5:概要を報告

次のような構造化された概要を出力します。

確認項目状態詳細
リモートの状態最新/古い最終取得時刻
既存の PRなし/オープン中/マージ済み該当する場合は PR 番号
ブランチの状態クリーン/変更あり/分岐進んでいる/遅れているコミット数
競合なし/検出競合しているファイル
スタッシュ空/N 件スタッシュの内容

推奨事項:

  • リモートより遅れている場合:「作業開始前にリベースすることを推奨します」
  • 既存の PR が見つかった場合:「PR #N がすでに対応しています。重複する作業を始める前に確認してください」
  • 変更がある場合:「ブランチを作成する前に、変更をコミットするかスタッシュしてください」
  • 競合が検出された場合:「続行する前に main との競合を解決してください」
  • クリーンな場合:「作業を開始できます」

エージェント向けの最適化

コンテキストコマンド
リモートを手早く同期git fetch origin --prune 2>/dev/null
既存の PR を確認gh pr list --search "fixes #N" --json number,state,headRefName
ブランチの分岐git log --oneline origin/main..HEAD
競合の検出git merge-tree $(git merge-base HEAD origin/main) HEAD origin/main
簡潔な状態表示git status --porcelain=v2 --branch
リモート追跡git branch -vv --format='%(refname:short) %(upstream:track)'

クイックリファレンス

フラグ説明
git fetch --prune取得し、古いリモート参照を削除します
git status --porcelain=v2プログラムで解析できる状態表示
gh pr list --search内容で PR を検索します
gh issue view --json構造化された課題データ
git merge-treeマージ競合を事前検出します
git log A..BA にはなく B にあるコミット

コメント