land-pr について
lossless-claw のプルリクエストを評価して取り込むための手順スキルです。PR の先頭 SHA を固定し、準備状況とレビューを確認して、確実なマージと事後対応を進めます。
主な機能
- 01マージ前に PR の先頭 SHA を固定
- 02必須チェックと準備状況の確認
- 03最終コードレビューの実施または確認
- 04関連する未解決 Issue の検索と評価
- 05固定したコミットでマージ
- 06マージ後の対応を記録
活用シーン
- 01PR のマージ可否を判断
- 02検証済みの lossless-claw 変更を取り込む
- 03未解決 Issue が対応済みか確認
- 04完全なマージ報告を作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ martian-engineering/ lossless-claw --skill land-prインストール後、Claude Code で/land-prを入力して読み込まれたか確認します。
詳細
Lossless PR のマージ
lossless-claw のプルリクエストをマージする場合、またはマージ可能かどうかを確認する場合に、このスキルを使用します。
ワークフロー
-
まずリポジトリの指示を読みます。
AGENTS.mdに従います。特に、データの保持、changeset、互換性、コマンド報告に関するルールを確認します。- このリポジトリ用の決定論的なマージラッパーがある場合は、そちらを優先します。ない場合は、以下の手動手順を使用します。
-
PR の head を特定して固定します。
- 実際の PR メタデータを取得します。
gh pr view <PR> --json number,title,state,isDraft,baseRefName,headRefName,headRefOid,mergeable,mergeStateStatus,reviewDecision,statusCheckRollup,author,files,closingIssuesReferences,url headRefOidをマージ時の固定値として扱います。マージ直前に再度読み取ります。
- 実際の PR メタデータを取得します。
-
マージ可能な状態か確認します。
- PR がオープンで、ドラフトではなく、マージ可能かつ問題のない状態である必要があります。
- 必須かつ最新のすべてのチェックが、固定した head で完了し、成功している必要があります。
gh pr checks <PR> --json name,state,bucket,workflow,link,startedAt,completedAt - チェックが保留中、失敗、欠落している場合、または異なる head SHA に紐づいている場合は、マージしないでください。
- PR がパッケージから見える動作、ユーザー向けの動作、ドキュメントから見える動作、互換性メタデータ、設定項目、またはリリース時の動作を変更する場合は、マージ前に changeset の要否を判断してください。
- 外部のコントリビューターに Changesets メタデータの追加を期待しないでください。メンテナーが担当します。
-
最終レビューを実施するか、完了していることを確認します。
- リポジトリの実際の PR ベースブランチを優先します。
head=$(gh pr view <PR> --json headRefOid --jq .headRefOid) base=$(gh pr view <PR> --json baseRefName --jq .baseRefName) gh pr checkout <PR> test "$(git rev-parse HEAD)" = "$head" /Users/phaedrus/Projects/prompts/skills/autoreview/scripts/autoreview --mode branch --base "origin/$base" - ブランチレビューは、
HEADが固定した PR のheadRefOidと完全に一致するチェックアウトからのみ実行します。 - 受け入れた指摘は、対応する前にコードで一つずつ検証します。
- 対応が必要な指摘が未解決のままマージしないでください。
- リポジトリの実際の PR ベースブランチを優先します。
-
マージ完了前にオープンイシューを検索します。
- 明示的なクローズ対象の参照を確認します。
gh pr view <PR> --json closingIssuesReferences --jq '.closingIssuesReferences' - PR のタイトル、主なエラーメッセージ、機能名、変更された動作、コミットや本文で言及されているイシュー番号を使って、重複または対応済みの可能性があるオープンイシューを検索します。
gh issue list --state open --limit 50 --search "<keyword terms> repo:Martian-Engineering/lossless-claw" - 候補となるイシューを読み、対応済みかどうかを判断します。
gh issue view <ISSUE> --json number,title,state,body,url,labels,comments - PR で明確に修正されており、GitHub によって自動的にクローズされないイシューは、マージ後にマージ済み PR へのリンクを含む簡潔なコメントを付けてクローズします。
- 判断に迷う場合はクローズせず、その PR で解決する可能性があることをイシューにコメントし、確認を求めます。
- 明示的なクローズ対象の参照を確認します。
-
決定論的な方法でマージします。
- 優先するラッパーがある場合は、次のコマンドを使用します。
scripts/pr-merge verify <PR> scripts/pr-merge run <PR> - 手動で行う場合は、次の手順を使用します。
head=$(gh pr view <PR> --json headRefOid --jq .headRefOid) title=$(gh pr view <PR> --json title --jq .title) gh pr merge <PR> --squash --match-head-commit "$head" --subject "$title" - このワークフローでは、
--autoを絶対に使用しないでください。 - 確認からマージまでの間に head SHA が変わった場合は、マージしないでください。
- 優先するラッパーがある場合は、次のコマンドを使用します。
-
マージ後の検証とメンテナーのフォローアップ。
- PR が
MERGEDであることを確認し、マージコミットを取得します。gh pr view <PR> --json state,mergeCommit,mergedAt,mergedBy,url - マージ後、外部コントリビューターへ簡単なお礼のコメントを残します。
gh pr comment <PR> --body "Thanks for the contribution, @<login>. This is landed now." - 検証済みでカバーされているものの、まだオープンなままの Issue を、PR とマージをリンクしたコメントとともにクローズします。
- マージ前に必要なチェンジセットが含まれていなかった場合は、不足している
.changeset/*.mdのみを追加する小さなフォローアップ PR を直ちに作成します。
- PR が
-
最終レポート。
- PR が準備完了だったかどうか、およびマージされたかどうかを記載します。
- PR 番号/タイトル、固定した head SHA、チェックの概要、レビューコマンド/結果、マージコマンド、マージコミット SHA、コントリビューターへのお礼コメントの URL、Issue 検索の結果、クローズ/コメントした Issue、チェンジセットの結果を含めます。
AGENTS.mdに従い、実行したコマンドとその結果をコードブロックに含めます。
禁止事項
- ランディングの一環として、永続化されたユーザーデータを削除、消去、切り詰め、その他の方法で破棄しないでください。
- 失敗している、または保留中の必須チェックをバイパスしないでください。
- head SHA を固定せずにマージしないでください。
- PR 本文に
Fixes #...がないという理由だけで、関連する Issue が存在しないと決めつけないでください。 - 曖昧な Issue をクローズしないでください。代わりにコメントするか、不確実であることを報告してください。
コメント
Markdown 対応