create-pull-request
GitHubのプルリクエストをプロジェクトの規約に従って作成します。PRの作成、レビュー用の変更提出、プルリクエストのオープンを求められた際に使用します。コミット解析、ブランチ管理、PRテンプレートの適用、`gh` CLIツールを使ったPR作成までを一括して処理します。
description の原文を見る
Create a GitHub pull request following project conventions. Use when the user asks to create a PR, submit changes for review, or open a pull request. Handles commit analysis, branch management, PR template usage, and PR creation using the gh CLI tool.
SKILL.md 本文
プルリクエストの作成
このスキルでは、プロジェクト規約とベストプラクティスに従った、よく構造化された GitHub プルリクエストを作成するプロセスを説明します。
前提条件の確認
進める前に、以下を確認してください:
1. gh CLI がインストールされているか確認
gh --version
インストールされていない場合は、ユーザーに以下を案内します:
GitHub CLI (
gh) が必要ですがインストールされていません。以下からインストールしてください:
- macOS:
brew install gh- その他: https://cli.github.com/
2. GitHub で認証されているか確認
gh auth status
認証されていない場合は、ユーザーに gh auth login の実行をガイドしてください。
3. クリーンなワーキングディレクトリを確認
git status
コミットされていない変更がある場合は、ユーザーに以下のいずれかを選択するよう求めます:
- このプルリクエストの一部としてコミットする
- 一時的にスタッシュする
- 破棄する(慎重に)
コンテキストの収集
1. 現在のブランチを特定
git branch --show-current
main または master 上にないことを確認してください。上にある場合は、ユーザーにフィーチャーブランチの作成または切り替えを求めます。
2. ベースブランチを見つける
git remote show origin | grep "HEAD branch"
これは通常 main または master です。
3. このプルリクエストに関連する最近のコミットを分析
git log origin/main..HEAD --oneline --no-decorate
これらのコミットをレビューして、以下を理解します:
- 導入される変更内容
- プルリクエストの範囲(単一フィーチャー/修正または複数の変更)
- コミットをスクワッシュまたは再構成する必要があるかどうか
4. diff をレビュー
git diff origin/main..HEAD --stat
どのファイルが変更されたかを表示し、変更のタイプを特定するのに役立ちます。
情報の収集
プルリクエストを作成する前に、以下の情報が必要です。以下から推測できるか確認してください:
- コミットメッセージ
- ブランチ名(例:
fix/issue-123、feature/new-login) - 変更されたファイルとその内容
重要な情報が不足している場合は、ask_followup_question を使用してユーザーに質問します:
必須情報
- 関連する Issue 番号:コミットメッセージまたはブランチ名に
#123、fixes #123、closes #123などのパターンを探す - 説明:この変更は何の問題を解決しますか?なぜこれらの変更が必要ですか?
- 変更のタイプ:バグ修正、新機能、破壊的変更、リファクタリング、コスメティック、ドキュメント、またはワークフロー
- テスト手順:これはどのようにテストされましたか?何が壊れる可能性がありますか?
例:確認質問
Issue 番号が見つからない場合:
コミットメッセージまたはブランチ名に関連する Issue 番号が見つかりませんでした。このプルリクエストが対応する GitHub Issue はどれですか?(Issue 番号を入力してください。例:「123」または小さな修正の場合は「N/A」)
Git のベストプラクティス
プルリクエストを作成する前に、以下のベストプラクティスを検討してください:
コミットの衛生管理
- アトミックコミット:各コミットは単一のロジカルな変更を表す
- 明確なコミットメッセージ:可能な限り Conventional Commit 形式に従う
- マージコミットなし:履歴をクリーンに保つため、マージよりもリベースを優先する
ブランチ管理
-
最新の main にリベース(必要に応じて):
git fetch origin git rebase origin/main -
適切な場合はスクワッシュ:多くの小さな「WIP」コミットがある場合、インタラクティブリベースを検討します:
git rebase -i origin/mainコミットが雑多に見え、ユーザーがリベースに慣れている場合にのみ推奨してください。
変更をプッシュ
すべてのコミットがプッシュされていることを確認します:
git push origin HEAD
ブランチがリベースされた場合は、次のが必要になる場合があります:
git push origin HEAD --force-with-lease
プルリクエストの作成
重要:.github/pull_request_template.md のプルリクエストテンプレートを読み、使用してください。プルリクエスト本文のフォーマットは、テンプレート構造に厳密に一致する必要があります。テンプレートフォーマットから逸脱しないでください。
テンプレートを記入する際:
#XXXXを実際の Issue 番号に置き換えるか、Issue が存在しない場合(小さな修正の場合)は#XXXXのまま保つ- コミットおよびコンテキストから収集した情報ですべてのセクションを記入する
- 適切な「Type of Change」チェックボックスをマークする
- 適用可能な「Pre-flight Checklist」項目を完成させる
gh CLI でプルリクエストを作成
シェルエスケープの問題、改行の問題、その他のコマンドライン上の不安定性を避けるため、プルリクエスト本文に一時ファイルを使用します:
-
プルリクエスト本文を一時ファイルに書き込みます:
/tmp/pr-body.md -
ファイルを使用してプルリクエストを作成します:
gh pr create --title "PR_TITLE" --body-file /tmp/pr-body.md --base main -
一時ファイルをクリーンアップします:
rm /tmp/pr-body.md
ドラフトプルリクエストの場合:
gh pr create --title "PR_TITLE" --body-file /tmp/pr-body.md --base main --draft
なぜファイルを使うのか? 改行、特殊文字、チェックボックスを含む複雑な Markdown を --body で直接渡すのはエラーが起きやすいです。--body-file フラグはすべてのコンテンツを確実に処理します。
作成後
プルリクエストを作成した後:
- プルリクエスト URL を表示:ユーザーが確認できるようにします
- CI チェックを思い出させる:テストと lint は自動的に実行されます
- 次のステップを提案:
- 必要に応じてレビュアーを追加:
gh pr edit --add-reviewer USERNAME - 必要に応じてラベルを追加:
gh pr edit --add-label "bug"
- 必要に応じてレビュアーを追加:
エラーハンドリング
一般的な問題
-
main より先のコミットがない:ブランチに送信する変更がない
- ユーザーが別のブランチで作業するつもりだったのかを確認します
-
ブランチがプッシュされていない:リモートにブランチがない
- 最初にブランチをプッシュ:
git push -u origin HEAD
- 最初にブランチをプッシュ:
-
プルリクエストが既に存在:このブランチに対するプルリクエストが既に存在する
- 既存のプルリクエストを表示:
gh pr view - 代わりに更新するかを尋ねます
- 既存のプルリクエストを表示:
-
マージコンフリクト:ブランチがベースとコンフリクト
- ユーザーをコンフリクト解決またはリベースのガイダンスに導きます
サマリーチェックリスト
最終化する前に、以下を確認します:
-
ghCLI がインストールされ認証されている - ワーキングディレクトリがクリーン
- すべてのコミットがプッシュされている
- ブランチがベースブランチの最新版と同期している
- 関連する Issue 番号が特定されている、またはプレースホルダーが使用されている
- プルリクエストの説明がテンプレートに完全に従っている
- 適切な変更タイプが選択されている
- Pre-flight チェックリスト項目が対応されている
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- cline
- リポジトリ
- cline/cline
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/cline/cline / ライセンス: Apache-2.0
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。