finalizing-pr について
現在のブランチをマージ可能なプルリクエストに整える開発スキルです。ビルド、ドキュメント、品質チェック、テスト、レビュー、AIレビューを段階的に進めます。
主な機能
- 01順序立てたビルドと品質チェック
- 02内部ドキュメントの更新とコード整理
- 03ユニットテストとE2Eチェック
- 04プルリクエストの作成・更新
- 05AIレビューと修正の反復
活用シーン
- 01マージ可能なブランチの準備
- 02チェックとレビュー指摘への対応
- 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 を追加してください。
必須ラベル:
| カテゴリ | オプション |
|---|---|
| Impact | impact:users(ユーザー動作に影響)または impact:internal(ユーザー動作の変更なし) |
| Change type | change: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