finish-line について
remix-run/react-router のコミュニティ PR の停滞解消を支援し、貢献者の所有権とリポジトリの規約を尊重するスキルです。阻害要因とテスト範囲を確認し、承認後に必要な補足作業を進めます。
主な機能
- 01PRの状態と背景の確認
- 02マージ阻害要因の特定
- 03必要なテスト範囲の評価
- 04承認済みのメンテナー補足
- 05変更ファイルとドキュメントの準備
- 06貢献者ブランチの所有権を尊重
活用シーン
- 01停滞中のコミュニティ PR の調査
- 02不足しているテストや変更ファイルの追加
- 03貢献者ブランチへの書き込み可否の確認
- 04承認用のメンテナー補足の準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ remix-run/ react-router --skill finish-lineインストール後、Claude Code で/finish-lineを入力して読み込まれたか確認します。
詳細
フィニッシュライン
概要
remix-run/react-router でブロックされているコミュニティ PR を、コントリビューターの所有権とリポジトリの PR パッケージング規約を尊重しながら完了させます。
$ARGUMENTS 内の PR 番号または URL を対象 PR として扱います。対象が指定されていない場合は、何かを行う前に確認してください。
トリアージ
git status --short --branchでローカルの状態を確認します。無関係な未コミットのファイルが存在する場合は、それらを上書きしたりステージしたりしないでください。- ブランチの判断を行う前に、最新の main を取得します:
git fetch origin main
- PR のコンテキストを収集します:
gh pr view <pr> --repo remix-run/react-router --json number,title,body,state,isDraft,author,baseRefName,headRefName,headRepository,headRepositoryOwner,maintainerCanModify,mergeStateStatus,reviewDecision,labels,files,commits,statusCheckRollup,url
gh pr checks <pr> --repo remix-run/react-router
gh pr diff <pr> --repo remix-run/react-router --stat
gh pr view <pr> --repo remix-run/react-router --comments
- マージのブロッカーを特定します。特に:
- PR がテスト、チェンジファイル、ドキュメントなど、リポジトリメンテナー側の追加のみを必要としている場合は、コントリビューターブランチのワークフローを使用します。
- コントリビューターブランチを変更できない場合は、根拠をまとめ、コントリビューターを待つか、メンテナーブランチで作業を再作成するかをユーザーに確認します。
- ブロッカーが不明確な場合は、根拠をまとめ、どちらの道を取るかをユーザーに確認します。
- フィニッシュラインの変更を決定する前に、テストカバレッジを評価します:
- PR の差分、変更されたファイル、既存の近接するテスト、レビューコメント、失敗したチェックを確認して、テストへの期待を把握します。
- PR が実行時の挙動、ビルド/プラグインの挙動、ルーティングのセマンティクス、生成される型、RSC の挙動、ドキュメントのレンダリング、またはリグレッションしうるあらゆるバグ/機能の表面を変更する場合は、同等のカバレッジがすでに存在しない限り、焦点を絞ったテストを追加または維持します。
- テストがすでに含まれている場合は、それらが変更された挙動を実際に検証していること、および影響を受ける React Router モード (Declarative、Data、Framework、RSC Data、および/または RSC Framework) をカバーしていることを確認します。
- 変更がドキュメントのみ、パッケージングのみ、チェンジファイル、またはその他実行可能な挙動ではないためにテストが不要な場合は、その根拠を最終レポートに記載します。
- 有用なテストが必要だがフィニッシュラインのスコープに対して大きすぎる、またはリスクが高すぎる場合は、PR を広げる前に停止してユーザーに確認します。
コントリビューターブランチのワークフロー
不足している作業がテスト、チェンジファイル、ドキュメントなど小規模なメンテナーのフォローアップであり、コントリビューターブランチを変更できる場合は、このパスを使用します。
- PR ブランチをチェックアウトします:
gh pr checkout <pr-number> --repo remix-run/react-router
- ブランチとローカルの状態を確認します:
git status --short --branch
git branch --show-current
- 不足しているフィニッシュラインの変更のみを行います。カバレッジ評価で必要な場合は、焦点を絞ったテストも含めます。マージ可能性を解消するために必要で、かつユーザーが同意しない限り、コントリビューターの作業をリファクタリングしないでください。
- プッシュする前に、正確な内容をユーザーと検証します:
- チェンジファイルの場合は、パッケージパス、ファイル名、チェンジタイプ、および Markdown の内容全体を表示します。
- ドキュメントの場合は、影響を受けるファイルと該当する文面/API スニペットを表示します。
- テストの場合は、テストファイルのパス、カバーする挙動、およびカバーするモードを表示します。
- コミットして PR ブランチにプッシュし戻すことについて、明示的に承認を求めます。
- 承認後、適切な場合は焦点を絞った検証を実行し、メンテナーのフォローアップをコミットして、PR ブランチにプッシュします。コントリビューターブランチを変更できないために
git pushが失敗した場合は、ユーザーがその方針転換を承認しない限り、代替 PR を開かずに停止して失敗を報告します。
チェンジファイル
影響を受けるパッケージの下にチェンジファイルを作成します:
packages/<package>/.changes/<type>.<unique-meaningful-name>.md
<type> には patch、minor、major、または unstable を使用します。バグ修正および狭い範囲の挙動修正の場合は、デフォルトで patch とします。内容は簡潔に保ちます:
Brief description of the user-facing change
PR が複数のパッケージにまたがる場合は、ユーザー向けの API または実行時の挙動に直接関係するパッケージを優先します。パッケージまたはチェンジタイプが明らかでない場合は、ユーザーに確認します。
ドキュメント
通常のバグ修正では、デフォルトでドキュメントを追加しないでください。PR がドキュメント化された API を変更する場合、ユーザーが知る必要のある新しい動作を導入する場合、例を変更する場合、またはユーザーやレビュアーが明示的にドキュメントを要求した場合にドキュメントを追加します。
リポジトリのドキュメントルールに従ってください:
- 生成された
docs/api/の出力ではなく、ソースドキュメントまたは JSDoc を編集してください。 - React Router の動作に関するドキュメントを追加する場合は、モードのコンテキストを含めてください:Declarative、Data、Framework、RSC Data、または RSC Framework。
- JSDoc から生成される API ドキュメントについては、
packages/react-router/lib/のコメントを編集し、pnpm run docsが必要になる場合があることに注意してください。
最終レポート
実行した経路と現在の PR の状態を報告してください:
- 元の PR 番号とブロッカー。
- 変更がコントリビュータのブランチにプッシュされたか、代替の PR が開かれたか。
- 該当する場合は、ブランチ、コミットハッシュ、PR の URL。
- 旧 PR に対して行ったコメントやクローズのアクション。
- 実行した、または省略した検証。
- テストカバレッジの判断:追加した、すでに存在する、または理由を添えて意図的に省略した。