Contributing

プルリクエストレビューの流れ

このページでは、OpenClaw のプルリクエストを作成または更新した後のレビューの流れについて説明します。Barnacle と ClawSweeper の役割、両者からのフィードバックを基に PR を改善する方法、そして自動化から応答がない場合に確認すべき事項を取り上げます。

Barnacle と ClawSweeper は、メンテナーがレビューキューを利用可能な状態に保つために役立ちます。これらはメンテナーの判断に代わるものではありません。

Barnacle

Barnacle は、決定論的な GitHub トリアージです。既知のキュー管理ケースを検出し、ラベルの付与、コメント、またはクローズによって対応します。

Barnacle は次の場合に動作することがあります。

  • PR 本文がほぼ空であるか、問題の背景が記載されていない。
  • PR に有用な証拠がない。
  • ドキュメントのみ、テストのみ、リファクタリングのみ、CI のみ、またはインフラのみの変更に、関連するメンテナーの背景情報へのリンクがない。
  • 変更がコアではなく ClawHub または Plugin に属するように見える。
  • ブランチに無関係な作業が含まれている。
  • 作成者に未完了の PR が 20 件を超えている。

Barnacle は、信頼されたリポジトリのワークフローコードから実行されます。コントリビューターのコードをチェックアウトしたり実行したりすることはありません。

ほとんどの振り分け用ラベルはメンテナーまたは自動化のシグナルであるため、コントリビューター自身がラベルを追加する必要はありません。

ClawSweeper

ClawSweeper は、OpenClaw リポジトリ向けの AI 支援レビューおよびメンテナンスボットです。PR のレビュー、証拠の評価、永続的なレビューコメントの投稿を行い、保護された修復または自動マージの流れでメンテナーを支援できます。

ClawSweeper の肯定的な結果は補足的な証拠であり、メンテナーの承認ではありません。PR をマージできる状態かどうか、およびいつマージするかは、引き続きメンテナーが判断します。

ClawSweeper はキュー方式です。PR の作成、コミットのプッシュ、またはレビューリクエストの追加後に、直ちに応答があるとは限りません。ClawSweeper の実行後にラベルが更新されるまでにも時間がかかる場合があります。

新しい PR は ClawSweeper のレビューキューに入ります。メンテナーは、ラベルやコマンドを使用して、レビュー、修復、または自動マージの流れをキューに追加することもできます。通常のコントリビューターによる更新では、ブランチ、PR の説明、証拠、またはコードを更新した後にのみ、ClawSweeper に再レビューを依頼してください。その後、新しい PR コメントで最新のレビューをリクエストします。

text
@clawsweeper re-review

PR の作成者は @clawsweeper re-run も使用できます。リポジトリへの書き込み権限を持つユーザーは、未完了のどの項目に対しても、いずれかのコマンドを使用できます。通常の @clawsweeper review コマンドはメンテナー専用です。しばらく待ってください。要求された変更が反映される前に再度依頼しても、キューのノイズが増えるだけです。

ClawSweeper がレビューの会話を残した場合は、通常のレビューフィードバックとして扱い、以下のフォローアップチェックリストを使用してください。

人間のコントリビューターまたはメンテナーが PR を引き継ぎ、積極的に作業している場合は、同時に ClawSweeper を呼び出したり、その他の方法で PR に作業したりしないでください。まず、人間によるレビューまたは修復が完了するまで待ちます。活動が止まった場合は、作成者に証拠の提示やその他の更新が求められていないか確認してください。

レビュー中に PR を改善する

Barnacle、ClawSweeper、またはメンテナーから応答があったら、そのフィードバックを PR の次のステップのチェックリストとして使用してください。

  1. ClawSweeper の Rank-up moves:Proof guidance: を、その PR のアクションリストとして確認します。評価とラベルはレビューのシグナルであり、固定されたマージ目標ではありません。
  2. 要求されたコードまたはドキュメントの変更をプッシュし、問題、解決策、ユーザーへの影響、または証拠が変わった場合は PR の説明を更新します。
  3. 変更内容に対応する証拠を使用して、要求された証拠を追加します。
  4. 対応済みのレビューの会話は自分で解決済みにします。メンテナーまたはレビュアーの判断が必要な場合にのみ、返信して会話を未解決のままにします。
  5. ブランチ、PR の説明、証拠、および関連する CI 結果が最新になってから、再レビューを依頼します。作成者、メンテナー、ClawSweeper の間で更新とレビューを複数回繰り返すことは通常です。
  6. 可能な限り、議論は PR 上で続けます。PR にメンテナー間の調整が必要な場合、自動化がブロックされているように見える場合、または次の判断を GitHub のコメントで決めることが難しい場合にのみ、Discord の #clawtributors に移動します。PR のリンク、現在の状態、具体的な質問または不足している証拠を含めてください。

PR 本文を最新の状態に保ってください。コメントは議論に役立ちますが、PR の説明は、メンテナーと自動化が再確認する永続的な要約です。

status: ⏳ waiting on author は、次の対応が PR の作成者にあることを意味します。再レビューを依頼する前に、ブランチ、PR の説明、証拠を更新するか、不足している背景情報を返信してください。

有用な証拠には、対象を絞ったテスト出力、CI 結果、スクリーンショット、録画、ターミナル出力、ライブ観測、編集済みのログ、または成果物へのリンクなどがあります。視覚的な変更では、可能であれば変更前と変更後のスクリーンショットを含めてください。証拠ファイルについては、CI 成果物、GitHub にアップロードしたスクリーンショットや録画、または短い編集済みログの抜粋へのリンクを推奨します。生成された証拠ファイルが実際のドキュメント、テスト、または製品変更の一部でない限り、コミットしないでください。

機密データの編集はコントリビューターの責任です。証拠を投稿する前に、シークレット、トークン、非公開 URL、ユーザーデータ、および無関係なログを削除してください。

OpenClaw では、別の stale 自動化も使用しています。担当者が割り当てられていない Issue と PR は、14 日間活動がないと stale としてマークされ、その後さらに 7 日間活動がないとクローズされる場合があります。担当者が割り当てられた PR は、その後の更新に関係なく、作成から 27 日後に stale としてマークされ、stale 状態で 7 日間活動がないとクローズされます。担当者が割り当てられた PR がまだ進行中の場合は、作業中のメンテナーと調整してください。

自動化から応答がない場合

メンテナーがすでに項目を処理している場合、レビューまたは修復リクエストがまだキューにある場合、イベントが定型的な場合、または ClawSweeper のレーンが要求されたアクション用に設定されていない場合、自動化から応答がないことがあります。

信頼されたワークフローで、信頼されていないコントリビューターのコードを実行する必要がある場合にも、動作を避けることがあります。その場合、メンテナーは代わりに通常のレビューまたはより安全なワークフローを使用します。

トラブルシューティング

ClawSweeper がすぐに応答しない場合は、再試行する前に待ってください。このサービスはキュー方式であり、コメントやラベルの変更を繰り返してもキューは速くならず、スレッドのレビューが難しくなる可能性があります。

支援を求める前に、以下を確認してください。

  • PR の説明が最新である。
  • 最新のコミットに要求された変更が含まれている。
  • CI が完了している、または残っている失敗が PR と無関係である理由が PR 本文に説明されている。
  • 最新のレビューリクエストが PR コメントとして投稿されている: @clawsweeper re-review
  • メンテナーまたはコントリビューターが、すでにその PR に積極的に作業していない。
  • 最新のリクエストが、通常の ClawSweeper のキュー遅延時間内ではない。

PR が最新の状態になってから数時間経過しても ClawSweeper から応答がない場合、または PR が自動化によってブロックされているように見える場合は、Discord の #clawtributors で問い合わせてください。PR のリンク、期待していたこと、依頼した時刻、および最後のボットコメント以降に変更した内容を含めてください。

自動化をフォークする

同様のレビュー自動化を導入したいプロジェクトは、ClawSweeper を調査またはフォークできます。

関連項目

Was this useful?
On this page

On this page