mcpField
L
land-pr

land-pr

github.com/martian-engineering開発4.9k47 回インストール1 日前に更新
リポジトリ

land-pr について

lossless-claw のプルリクエストを評価して取り込むための手順スキルです。PR の先頭 SHA を固定し、準備状況とレビューを確認して、確実なマージと事後対応を進めます。

主な機能

  1. 01マージ前に PR の先頭 SHA を固定
  2. 02必須チェックと準備状況の確認
  3. 03最終コードレビューの実施または確認
  4. 04関連する未解決 Issue の検索と評価
  5. 05固定したコミットでマージ
  6. 06マージ後の対応を記録

活用シーン

  1. 01PR のマージ可否を判断
  2. 02検証済みの lossless-claw 変更を取り込む
  3. 03未解決 Issue が対応済みか確認
  4. 04完全なマージ報告を作成

インストール

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

$npx skills add https://github.com/martian-engineering/lossless-claw --skill land-pr

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

詳細

Lossless PR のマージ

lossless-claw のプルリクエストをマージする場合、またはマージ可能かどうかを確認する場合に、このスキルを使用します。

ワークフロー

  1. まずリポジトリの指示を読みます。

    • AGENTS.md に従います。特に、データの保持、changeset、互換性、コマンド報告に関するルールを確認します。
    • このリポジトリ用の決定論的なマージラッパーがある場合は、そちらを優先します。ない場合は、以下の手動手順を使用します。
  2. PR の head を特定して固定します。

    • 実際の PR メタデータを取得します。
      gh pr view <PR> --json number,title,state,isDraft,baseRefName,headRefName,headRefOid,mergeable,mergeStateStatus,reviewDecision,statusCheckRollup,author,files,closingIssuesReferences,url
      
    • headRefOid をマージ時の固定値として扱います。マージ直前に再度読み取ります。
  3. マージ可能な状態か確認します。

    • PR がオープンで、ドラフトではなく、マージ可能かつ問題のない状態である必要があります。
    • 必須かつ最新のすべてのチェックが、固定した head で完了し、成功している必要があります。
      gh pr checks <PR> --json name,state,bucket,workflow,link,startedAt,completedAt
      
    • チェックが保留中、失敗、欠落している場合、または異なる head SHA に紐づいている場合は、マージしないでください。
    • PR がパッケージから見える動作、ユーザー向けの動作、ドキュメントから見える動作、互換性メタデータ、設定項目、またはリリース時の動作を変更する場合は、マージ前に changeset の要否を判断してください。
    • 外部のコントリビューターに Changesets メタデータの追加を期待しないでください。メンテナーが担当します。
  4. 最終レビューを実施するか、完了していることを確認します。

    • リポジトリの実際の 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 と完全に一致するチェックアウトからのみ実行します。
    • 受け入れた指摘は、対応する前にコードで一つずつ検証します。
    • 対応が必要な指摘が未解決のままマージしないでください。
  5. マージ完了前にオープンイシューを検索します。

    • 明示的なクローズ対象の参照を確認します。
      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 で解決する可能性があることをイシューにコメントし、確認を求めます。
  6. 決定論的な方法でマージします。

    • 優先するラッパーがある場合は、次のコマンドを使用します。
      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 が変わった場合は、マージしないでください。
  7. マージ後の検証とメンテナーのフォローアップ。

    • 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 を直ちに作成します。
  8. 最終レポート。

    • PR が準備完了だったかどうか、およびマージされたかどうかを記載します。
    • PR 番号/タイトル、固定した head SHA、チェックの概要、レビューコマンド/結果、マージコマンド、マージコミット SHA、コントリビューターへのお礼コメントの URL、Issue 検索の結果、クローズ/コメントした Issue、チェンジセットの結果を含めます。
    • AGENTS.md に従い、実行したコマンドとその結果をコードブロックに含めます。

禁止事項

  • ランディングの一環として、永続化されたユーザーデータを削除、消去、切り詰め、その他の方法で破棄しないでください。
  • 失敗している、または保留中の必須チェックをバイパスしないでください。
  • head SHA を固定せずにマージしないでください。
  • PR 本文に Fixes #... がないという理由だけで、関連する Issue が存在しないと決めつけないでください。
  • 曖昧な Issue をクローズしないでください。代わりにコメントするか、不確実であることを報告してください。

コメント