一键导入
pr
Generate a GitHub pull request title and body from the current branch and let the user review before creation. Use when the user wants to create a pull request.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate a GitHub pull request title and body from the current branch and let the user review before creation. Use when the user wants to create a pull request.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Generate a commit message from staged changes and let the user review before committing. Use when the user wants to commit changes or create a git commit.
Investigate any topic by querying multiple external sources (web, official docs, GitHub, MCP servers). Use whenever a question requires information not already in the working context, including library behavior, API specifications, error diagnostics, version comparisons, or general factual lookup.
himari is ncaq's rio-like custom Haskell Prelude. Import it with a single `import Himari`, never `import Himari.Prelude` or other submodules directly. Use when writing or reviewing Haskell code in a project that depends on the himari package.
Prefer the most specific built-in method over general-purpose ones in TypeScript/JavaScript. Use includes over indexOf, some over filter().length, find over filter()[0], flatMap over map().flat(), at(-1) over length-based access, startsWith/endsWith/includes over indexOf on strings, structuredClone over JSON round-trip. Use when writing or reviewing code that searches, tests, transforms arrays, objects, or strings.
Avoid for loops (C-style, for...of, for...in) in TypeScript/JavaScript. Prefer higher-order Array methods like map, filter, find, some, every, reduce. Use when writing or reviewing loops or iteration over arrays, objects, Map, Set, or String.
Variable naming conventions for TypeScript/JavaScript. Prefer camelCase even for constants and avoid UPPER_SNAKE_CASE. Use when naming or reviewing variables or constants.
| name | pr |
| description | Generate a GitHub pull request title and body from the current branch and let the user review before creation. Use when the user wants to create a pull request. |
| allowed-tools | AskUserQuestion, Bash(git status:*), Bash(konoka-pr-editor:*), Bash(prepare-editmsg:*), Bash(sync-and-push:*), Edit, Read, Skill(pr-style), Write, mcp__github__create_pull_request, mcp__github__issue_write |
| model | opus |
| effort | medium |
GitHubのpull requestを作成します。 AIがタイトルと本文を生成し、 ユーザが確認してから作成します。 このスキルは新規作成のみを扱います。 既存PRの更新は対象外です。
Skill(pr-style)を呼び出し、
スタイルガイドラインに従ってください。
このスキルがリポジトリ固有のCONTRIBUTINGとpull requestテンプレートを探索して読み込むため、 このスキル内で改めて読み込む必要はありません。
!sync-and-push
上記の埋め込みコマンドは、 baseブランチとの同期(必要ならrebase)に続けて、 headブランチをremoteへ同期します。
このスクリプトは以下を行います。
git push -u origin <current>で初回pushします。git push origin <current>で通常pushします。gh pr listで確認し、
存在しない場合のみgit push --force-with-lease origin <current>で上書きします。スクリプトの出力はkey=value形式で、
currentbaseownerreporebasedactionが1ブロックにまとまって含まれます。
actionは、
noneinitialnormalforceのいずれかです。
これらの値を以降のステップで使用してください。
スクリプトの実行が失敗していた場合はエラーメッセージをそのままユーザに報告し、 PRの作成は中止してスキルを終了してください。
rebaseがコンフリクト等で失敗した場合は、
スクリプト内でgit rebase --abortが呼ばれてrebase状態は巻き戻されています。
特にforce pushが必要だが対象ブランチに対してopen PRが既に存在するケースでは、 スクリプトはforce pushを行わずにエラー終了します。 このスキルは新規PR作成のみを扱うため、 既存PRがある場合はスキルの実行をキャンセルし、 ユーザに既存PRの更新を促してください。
pr-styleスキルのガイドラインに従い、
コミット履歴とdiffの把握、
タイトルと本文の生成、
アサインとラベルの決定を済ませてください。
PRに含まれるコミットが1つだけの場合は、 そのコミットメッセージのタイトルと本文をそのまま流用してください。
複数コミットがある場合は、 PR全体の変更を要約するタイトルと本文を新たに書いてください。
以下のスクリプトでセッション固有の一時ディレクトリを作成し、
PULLREQ_EDITMSGファイルのフルパスが取得されます。
!prepare-editmsg
スクリプトは$XDG_RUNTIME_DIR/coding-agent-work/pr/配下にディレクトリを作り、
存在しない場合は再帰的に作成します。
未設定環境ではos.tmpdir()にフォールバックします。
得たパスにWriteツールで内容を書き出してください。
ファイルは1行目をタイトル、
空行を挟んで本文という構造にします。
AskUserQuestionツールを使って、
生成したタイトル、本文、アサイン、ラベルの扱いをユーザに確認してください。
質問文にはタイトルと本文の全文に加えて、 アサインするユーザと付与するラベルも含めてください。 本文が長い場合でも省略せず全文を提示してください。 ユーザが内容を見て判断できるようにするためです。
選択肢は以下を設定してください。
AskUserQuestionツールはこれらに加えてOther(自由テキスト入力)の選択肢を自動的に追加します。
Otherが選ばれた場合はユーザの修正指示に従って内容を修正し、
確認ステップに戻ってください。
一時ファイルの内容をそのまま使用して、 PR作成に進んでください。
以下のコマンドでユーザに編集してもらいます。 タイムアウトは最大の600秒に設定してください。
konoka-pr-editor <PULLREQ_EDITMSGのパス>
エディタが正常終了したら、
Readツールでファイルを読み直して内容を取得し、
PR作成に進んでください。
エディタが異常終了した場合、 ユーザがPR作成をキャンセルしたいという意思表示であると解釈して、 作業をキャンセルしてください。
ユーザがPR作成をキャンセルしたいという意思表示であると解釈して、 作業をキャンセルしてください。
mcp__github__create_pull_requestを使ってPRを作成してください。
引数は以下の通りです。
owner: sync-and-pushの出力のownerrepo: sync-and-pushの出力のrepohead: sync-and-pushの出力のcurrentbase: sync-and-pushの出力のbasetitle: 生成したタイトルbody: 生成した本文draft: ユーザが明示的に指示した場合のみtrue、それ以外は省略GitHubのPR作成APIはassigneesとlabelsの同時設定に対応していないため、 これらは作成後に別ステップで設定します。
作成に成功するとPR番号とURLが返ります。 それらを次のステップで使用してください。
PR作成からアサイン/ラベル設定までのタイムラグを最小化するため、 このステップとPRの作成の間に他の処理を挟まないでください。 アサインとラベルの選定は事前に済ませている前提です。
mcp__github__issue_writeをupdateメソッドで呼び出し、
作成したPRの番号をissue_numberに渡し、
assigneesとlabelsを1回で設定してください。
method: "update"owner: sync-and-pushの出力のownerrepo: sync-and-pushの出力のrepoissue_number: 作成したPRの番号assignees: pr-styleスキルで決定したloginの配列labels: 選定したラベル(該当なしの場合は省略可)他人のリポジトリにPRを作成しようとしている場合など、 権限不足でアサイン設定やラベルの設定が出来ない場合があります。 その場合はエラーを検知して、 PR自体は作成されたことを報告してください。
PRのURL、アサインしたユーザ、付与したラベルを含めて完了報告してください。