mcpField
F
finalizing-pr

finalizing-pr

github.com/streamlit開発46.2k71 回インストール今日更新
リポジトリ

finalizing-pr について

現在のブランチをマージ可能なプルリクエストに整える開発スキルです。ビルド、ドキュメント、品質チェック、テスト、レビュー、AIレビューを段階的に進めます。

主な機能

  1. 01順序立てたビルドと品質チェック
  2. 02内部ドキュメントの更新とコード整理
  3. 03ユニットテストとE2Eチェック
  4. 04プルリクエストの作成・更新
  5. 05AIレビューと修正の反復

活用シーン

  1. 01マージ可能なブランチの準備
  2. 02チェックとレビュー指摘への対応
  3. 03プルリクエストの作成・更新

インストール

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

$npx skills add https://github.com/streamlit/streamlit --skill finalizing-pr

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

詳細

PR のファイナライズ

品質チェックを実行し、コードを簡素化し、PR が存在しない場合は作成することで、現在のブランチをマージできる状態に準備します。

完全に自律的に動作してください — 確認を求めるために停止したり一時停止したりしないでください。現在の状態から、人間の介入なしにマージ可能な PR まで進めてください。未解決の質問や曖昧な点がある場合は、それらでブロックするのではなく、PR の会話コメント(Conversation タブ内)に記載してください。

ワークフロー

以下の手順を順番に実行してください。特に指定がない限り、すべてのサブエージェントをフォアグラウンドで実行し(バックグラウンドではなく)、次に進む前にそれぞれが完了するのを待ってください。サブエージェントのモデル: すべての起動でこのセッションと同じモデルを使用してください(model: inherit / モデルの上書きは省略)。ユーザーが明示的に要求しない限り、別のモデルやより高速なモデルに切り替えないでください。

Note: 小さな変更(ドキュメントの微調整、テストのみの微調整、ワンライナー、その他の小さな変更)の場合は、手順 1、2、3、6、7、8 をスキップできます。

1. ビルドとインストール

サブエージェントで make all を実行し、ビルドとインストールが最新であることを確認します。次に進む前に完了を待ってください。

make all
2. 内部ドキュメントの更新

バックグラウンドのサブエージェントで /updating-internal-docs スキルを実行し、内部ドキュメントの問題を自動修正します。ローカルの変更に関連する内部ドキュメントの問題に対して、推奨されるすべての修正を適用するよう指示してください。

3. 変更の簡素化

simplifying-local-changes サブエージェントを実行し、コードの変更をクリーンアップして簡素化します。次に進む前に完了を待ってください。

4. 自動修正の実行

サブエージェントで自動修正を実行し、フォーマットとリンティングの問題を修正します。次に進む前に完了を待ってください。

make autofix
5. チェックの実行(1 回目)

サブエージェントで /checking-changes スキルを実行し(make check を使用)、変更を検証します。完了を待ち、この手順では make check 以外のチェックを実行しないでください。次に進む前に、見つかった問題を修正してください。

6. 変更のレビュー

reviewing-local-changes サブエージェントを実行し、変更をレビューします。完了を待ち、レビュー出力を読んでください。

7. レビューフィードバックへの対応

手順 6 の推奨事項を確認します。各推奨事項について:

  • 妥当でありコード品質が向上する場合: 変更を実装する
  • 該当しない、または過剰な設計になる場合: 簡単な理由を添えてスキップする
8. チェックの実行(2 回目)

サブエージェントで E2E_CHECK=true make check を指定して /checking-changes スキルを実行し、変更された e2e テストも実行します。完了を待ち、次に進む前に、見つかった問題を修正してください。スナップショットの不一致は無視してかまいません(手動での更新が必要です)。

9. PR の作成または更新

Note: 現在 develop にいる場合は、wiki/pull-requests.md の命名規則に従って、まず新しいブランチを作成してください。

現在のブランチに PR が存在するか確認します:

gh pr view --json number,title,url

PR が存在しない場合、wiki/pull-requests.md(必ずお読みください!)のガイドラインおよび /reviewing-pr-description スキルのタイトル/説明のガイダンスに従って作成してください。適切なラベルを追加し、.github/pull_request_template.md に基づいて本文を記入してください。

関連する issue をリンク: この PR が解決する既知の GitHub issue がある場合は、PR の説明に - Closes #12345 を追加してください。

必須ラベル:

カテゴリオプション
Impactimpact:users(ユーザー動作に影響)または impact:internal(ユーザー動作の変更なし)
Change typechange:feature、change:bugfix、change:chore、change:refactor、change:docs、change:spec、change:other

注: change:spec(仕様/設計ドキュメントのみを対象)のラベルが付いた PR は、Impact ラベルの要件が免除されます。

# Push branch to origin first (required for gh pr create in non-interactive mode)
git push -u origin HEAD

# Create the PR
gh pr create --base develop --title "[type] Description" --body "$(cat <<'EOF'
## Describe your changes

- Change 1
- Change 2

## GitHub Issue Link (if applicable)

- Closes #12345

## Testing Plan

- [x] Unit Tests (JS and/or Python)
EOF
)" --label "impact:users,change:feature"

PR が存在する場合、現在の変更に基づいて説明の更新が必要かどうかを確認します。

10. 中間ファイルをアップロードする

関連する中間ファイルが存在する場合(work-tmp/ 内の仕様書、計画、実装メモ、または specs/ 内の未追跡ファイル)、/sharing-pr-agent-artifacts スキルを実行してそれらを wiki にプッシュし、リンク付きで PR にコメントします。

11. AI レビューと修正のループ

AI レビューと修正のループを最大 5 回実行します。各レビューの後は、常に fixing-pr を実行して CI を待機しコメントに対応できるようにしてから、そのレビューが承認された場合は終了します:

for iteration 1 to 5:
    1. Trigger AI review by applying the "ai-review" label
    2. Run the `fixing-pr` subagent in foreground to wait for CI, fix failures, and address review comments
    3. Check the latest AI review verdict
    4. If it is "approved" → exit loop

AI レビューをトリガーする:

gh pr edit --add-label "ai-review"

AI レビューの判定を確認する:

AI レビューは github-actions ボットからの PR レビューとして結果を投稿します。これらには隠しマーカーが含まれています:

最新の AI レビューを見つけて判定を抽出するには:

PR_NUM=$(gh pr view --json number -q '.number')

# Get the verdict from the latest AI review
gh api --paginate "repos/streamlit/streamlit/pulls/${PR_NUM}/reviews" \
  | jq -s '[.[][] | select(.user.login == "github-actions[bot]" and (.body | contains("<!-- streamlit-ai-review")))] | sort_by(.submitted_at) | last | .body' \
  | grep -A2 "## Verdict"

判定セクションには、結果を示す太字のキーワードが含まれています:

  • **APPROVED** → ループを終了、PR は準備完了
  • **CHANGES_REQUESTED** → 反復を続け、フィードバックに対応する

APPROVED の判定が出た後に別の反復を開始しないでください。たとえ fixing-pr がフォローアップの CI 修正をプッシュしたとしてもです。それらのコミットは CI ではカバーされますが、AI レビューではカバーされません。

12. 最終 AI レビュー

レビューループの後、ai-final-review を一度だけ適用します。このブランチに対して queued または in_progress の ai-pr-review.yml 実行が表示されるまで待ってから、/fixing-pr を開始します — まだ何もキューに入っていなければ即座に戻ります:

gh pr edit --add-label "ai-final-review"

gh run list --branch "$(git branch --show-current)" --workflow ai-pr-review.yml --status queued
gh run list --branch "$(git branch --show-current)" --workflow ai-pr-review.yml --status in_progress

/fixing-pr を一度実行して、CI を待機しコメントに対応できるようにします。ステップ 11 が承認されたか反復回数を使い切ったかに関わらず、これを正確に一度だけ行ってください。ai-final-review を再度適用しないでください。/fixing-pr の後、残りの変更をコミットしてプッシュします。

13. エージェントメトリクスを投稿する

エージェントメトリクスを PR 本文に投稿します:

uv run python scripts/log_agent_metrics.py --post

コメント