prlisted
Install: claude install-skill ncaq/konoka
GitHubのpull requestを作成します。
AIがタイトルと本文を生成し、
ユーザが確認してから作成します。
このスキルは新規作成のみを扱います。
既存PRの更新は対象外です。
# スタイルガイドラインの適用
`Skill(pr-style)`を呼び出し、
スタイルガイドラインに従ってください。
このスキルがリポジトリ固有のCONTRIBUTINGとpull requestテンプレートを探索して読み込むため、
このスキル内で改めて読み込む必要はありません。
# baseとの同期とremoteへのpush
!`sync-and-push`
上記の埋め込みコマンドは、
baseブランチとの同期(必要ならrebase)に続けて、
headブランチをremoteへ同期します。
このスクリプトは以下を行います。
- 現在のブランチがbaseブランチでないことを確認します。
- baseブランチに切り替えてpullし、元のブランチに戻ります。
- baseブランチが進行していた場合は元のブランチをbaseの上にrebaseします。
PR作成後にbaseが進行するとGitHub上でupdate baseの作業が��要になりますが、
作成前にrebaseしておくことでこれを回避します。
PR作成前なのでrebaseで履歴が書き換わっても他者に影響しません。
- upstream未設定なら`git push -u origin <current>`で初回pushします。
- upstreamと完全一致なら何もしません。
- ローカルが先行(fast-forward可能)なら`git push origin <current>`で通常pushします。
- 履歴が分岐(force pushが必要)なケースでは、
まず同名ブランチをheadとするopen PRが存在しないことを`gh pr list`で確認し、
存在しない場合のみ`git push --force-with-lease origin <current>`で上書きします。
スクリプトの出力は`key=value`形式で、
- `current`
- `base`
- `owner`
- `repo`
- `rebased`
- `action`
が1ブロックにまとまって含まれます。
`action`は、
- `none`
- `initial`
- `normal`
- `force`
のいずれかです。
これらの値を以降のステップで使用してください。
スクリプトの実行が失敗していた場合はエラーメッセージをそのままユーザに報告し、
PRの作成は中止してスキルを終了してください。
rebaseがコンフリクト等で失敗した場合は、
スクリプト内で`git rebase --abort`が呼ばれてrebase状態は巻き戻されています。
特にforce pushが必要だが対象ブランチに対してopen PRが既に存在するケースでは、
スクリプトはforce pushを行わずにエラー終了します。
このスキルは新規PR作成のみを扱うため、
既存PRがある場合はスキルの実行をキャンセルし、
ユーザに既存PRの更新を促してください。
# PR内容の準備
`pr-style`スキルのガイドラインに従い、
コミット履歴とdiffの把握、
タイトルと本文の生成、
アサインとラベルの決定を済ませてください。
PRに含まれるコミットが1つだけの場合は、
そのコミット