mcpField
C
creating-pull-requests

creating-pull-requests

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

creating-pull-requests について

GitHubのドラフトPRを準備し、作成するためのスキルです。作成前のユーザー承認を必須とし、ブランチやコミットの手順、ラベル選択、リポジトリのテンプレートに沿った簡潔なPR内容を案内します。

主な機能

  1. 01準備済みまたは自動化の手順を選択
  2. 02ブランチ作成、コミット、プッシュを案内
  3. 03必須のPRラベルを選択
  4. 04リポジトリの指針に沿ってタイトルと説明を作成
  5. 05PR作成前にレビューと承認を必須化

活用シーン

  1. 01準備済みブランチからドラフトPRを作成
  2. 02ブランチ、コミット、プッシュを自動化
  3. 03レビュー用のPR内容とラベルを準備

インストール

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

$npx skills add https://github.com/streamlit/streamlit --skill creating-pull-requests

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

詳細

プルリクエストの作成

ユーザーの承認後、適切なラベルを付けて GitHub にドラフト PR を作成します。

重要な制約:

  • gh pr create を実行する前に、必ずユーザーの承認を待つ必要があります
  • 作成する前に、PR の内容を完全にチャットに表示する必要があります
  • 以下に示す記述ルールとラベル付けルールに従う必要があります

ステップ 1: モードの選択

必ず最初にユーザーに確認してください:

PR の作成をどのように進めますか?

  1. 準備完了: すべての変更をコミット済みでプッシュ済みのフィーチャーブランチがあります
  2. 自動: ブランチの作成、コミット、プッシュを自動で処理します

続行する前にユーザーの返答を待ちます。

ステップ 2: git ワークフローの実行

モード A: 準備完了

準備状態を検証します:

git branch --show-current
git status
git branch -r | grep $(git branch --show-current)

ユーザーに確認し、その後ステップ 3 に進みます。

モード B: 自動

ユーザーがすでに git add で変更をステージング済みであることを前提とします。

git status
git checkout develop
git checkout -b {type}/{descriptive-name}
git commit -m "{imperative-verb} {what} {where}"
git push --set-upstream origin $(git branch --show-current)

ブランチ名: ケバブケースで {type}/{brief-description}。 タイプ: feature、fix、refactor、chore、docs。 例: feature/add-height-plotly-charts、fix/dataframe-memory-leak-scrolling。

コミットメッセージ: <命令形の動詞> <何を> <どこで>、50 文字以内、ピリオドなし。 例: Add height parameter to plotly charts、Fix memory leak in dataframe scrolling。

ステップ 3: PR の作成と構成

以下のタイトルと説明を起草する際は、/reviewing-pr-description スキルのタイトル/説明に関するガイダンスに従い、最初から明確で簡潔になるようにしてください。

3.1 ラベルの決定

すべての PR には次のラベルが必要です:

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

注: change:spec ラベルが付いた PR (仕様書/設計書のみを対象) は impact:* の要件から免除されます。コード変更を含む PR には change:spec を使用しないでください。

3.2 PR タイトルの生成

形式: [type] Description of change、63 文字以内 (スクワッシュマージのコミットサブジェクトに収まるように)。

例: [feature] Add height parameter to plotly charts、[fix] Extra padding on button。

3.3 PR 説明の作成

.github/pull_request_template.md を読み、必要なセクションを確認してから記入します。

記述ルール:

  • 重要な点を強調します。明白なことは省略します。
  • 変更を列挙する箇条書きは最大 2〜4 個まで。
  • メタ的なコメント (「この PR は...」「私たちは...」「私は...を追加しました」) は書かないでください。変更内容を直接述べてください。
  • 列挙しないこと: テストの追加、型の更新、バリデーションの追加、リンティングの修正 (すべて明白です)。
  • 説明すべきこと: 自明でない判断 (非推奨化、単位の選択、フォールバック動作)。

良い例:

Height 型システムを使用して st.plotly_chart() に height パラメータを追加します。

  • use_container_height を非推奨化 (2025-12-31 以降に削除)

悪い例 (すべての変更を列挙):

  • シグネチャに height パラメータを追加
  • レイアウト設定 dataclass を更新
  • height 値のバリデーションを追加
  • 単体テストを追加

テストセクション — 変更されたファイルから検出します:

パターンテストの種類
lib/tests/**/*.pyPython 単体テスト
frontend/**/*.test.{ts,tsx}フロントエンド単体テスト
e2e_playwright/**/*_test.pyE2E テスト

PR テンプレートの該当するチェックボックスをオンにします。テストファイルが変更されていない場合は、その理由を説明します。「手動テスト」は未チェックのままにします (ユーザーが記入します)。

3.4 ユーザーレビュー用の PR の作成

完全な PR の詳細を work-tmp/pr_description.md に書き込みます:

---
title: [PR title from 3.2]
labels: impact:{users|internal}, change:{type}
---

[PR description from 3.3]

ユーザーに確認します: 「PR の詳細を work-tmp/pr_description.md に書き込みました。そのファイルでタイトル、ラベル、説明を直接編集できます。PR を作成する準備ができたら『yes』と返信するか、変更に関するフィードバックをお寄せください。」

3.5 PR の作成 (ユーザーの承認後のみ)

work-tmp/pr_description.md を読み、(.編集されている可能性のある) タイトル、ラベル、説明を取得します:

# Parse frontmatter from the reviewed file
title=$(grep '^title:' work-tmp/pr_description.md | sed 's/^title: //')
labels=$(grep '^labels:' work-tmp/pr_description.md | sed 's/^labels: //' | sed 's/, /,/g')

# Extract body (everything after the closing --- of frontmatter)
awk '/^---$/{if(++count==2) flag=1; next} flag' work-tmp/pr_description.md > work-tmp/pr_body.md

# Create PR using parsed values
gh pr create \
  --title "$title" \
  --body-file work-tmp/pr_body.md \
  --base develop \
  --label "$labels" \
  --draft

# Clean up temporary files
rm work-tmp/pr_description.md work-tmp/pr_body.md

参考

記述原則、ラベル付け、ブランチ命名、テスト計画の詳細については、Pull requests wiki を参照してください。

コメント