mcpField
C
clawsweeper

clawsweeper

github.com/openclaw開発393.3k384 回インストール今日更新
リポジトリ

clawsweeper について

ClawSweeper の保守ボットを操作するスキルです。レポート確認、修復ジョブ、制御された PR、メンテナーコマンドを扱い、状態確認は読み取り専用、変更は認可とゲートを前提とします。

主な機能

  1. 01スイープレポートとワークフロー状態の確認
  2. 02修復ジョブの作成とディスパッチ
  3. 03メンテナーコメントコマンドの処理
  4. 04ゲート制御下での自動修復とマージ
  5. 05実行状況の監視と所見の報告

活用シーン

  1. 01既存の Issue や PR の所見を要約
  2. 02認可済み修復ジョブのディスパッチ
  3. 03自動修復または自動マージ要求の確認

インストール

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

$npx skills add https://github.com/openclaw/openclaw --skill clawsweeper

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

同梱ファイルagents/openai.yaml

詳細

ClawSweeper

ClawSweeper は ~/Projects/clawsweeper にあります。調査、修復ジョブ、安全対策付き修正 PR を担当する唯一の OpenClaw メンテナンスボットです。 レポート、検出結果、ディスパッチの状態、修復/クラウド PR の作成、コメントコマンド、自動マージ、権限、またはゲートについて尋ねられた場合は、このスキルを使用してください。

開始

ClawSweeper のチェックアウトで git status --short --branch を確認します。状態やレポートの依頼は読み取り専用のままにします。鮮度が重要な場合は、取得やビルドをして確認するのではなく、現在のレポートとライブ読み取り API を使用してください。

実装または実行が承認されている場合は、タスク専用のクリーンなチェックアウトを更新し、選択したコマンドで必要な場合にのみビルドします。無関係な編集や、ほかのオペレーターが進行中のワークフローはそのまま維持してください。

1 つのボット、1 つのアプリ

ClawSweeper リポジトリと clawsweeper GitHub App を使用してください。この自動化には CLAWSWEEPER_* の設定のみを使用してください。レガシーアプリ、変数、ラベル、スキルは使用しないでください。

必須のアプリ設定:

  • CLAWSWEEPER_APP_CLIENT_ID:clawsweeper の公開アプリクライアント ID。
  • CLAWSWEEPER_APP_PRIVATE_KEY:actions/create-github-app-token のステップ内でのみ使用する秘密鍵。
  • 対象アプリの権限:対象のスキャンコンテキストの読み取り、Issue とプルリクエストへの書き込み、レポートのコミット、修復ブランチ、ワークフロー入力のためのコンテンツへの書き込み、コメントルーターによる再レビューのディスパッチ、ワークフローのディスパッチ、実行のキャンセル、自己修復のための openclaw/clawsweeper に対する Actions への書き込み。

トークンの境界:

  • Codex ワーカーには変更用の認証情報を渡しません。
  • レビューワーカーは、シークレット/トークン環境変数を取り除いた状態で実行します。
  • コメント、ラベル、ブランチのプッシュ、PR の作成、クローズ、マージは、短期間有効な GitHub App トークンを使用して決定論的なスクリプトが担当します。
  • マージおよび書き込みゲートは、デフォルトで閉じています。

ホステッドコミットレビュー

ホステッド環境でのコミットごとのレポートとコミット Check Runs は廃止されました。コミット済みブランチに対して保持されているオフラインレビューを実行するには、pnpm local-review -- --base main を使用してください。$autoreview --mode commit --commit <sha> は、これとは別の汎用レビュー経路として引き続き使用できます。

調査レポート

Issue/PR レポートの保存場所:

records/<repo-slug>/items/<number>.md
records/<repo-slug>/closed/<number>.md

件数、具体的な検出結果、レポートへのリンクを先に示してください。レポートを読む作業から、依頼されていない GitHub コメントを投稿しないでください。公開されるものは、Markdown レポート、永続的な ClawSweeper レビューコメント、任意のチェックです。

PR レポートには、優先度、信頼度、リポジトリ相対のファイル名、行の範囲を含む Codex の /review 形式の reviewFindings が含まれます。検出結果がある場合、公開 PR コメントには短い Review findings: のリストを表示します。レビューコメント全文、根拠リンク、担当者候補、ランタイムの詳細は、折りたたまれた Review details ブロック内に保持されます。

簡単な状態確認の依頼では、既存のレポートと、範囲を限定したライブワークフローの状態を確認します。pnpm run audit は、完全な監査を依頼された場合にのみ使用してください。

照合は、別途承認が必要な変更作業です。引数なしの pnpm run reconcile は、レポートと作業計画のファイルを移動または削除します。このメンテナンスタスクを依頼された場合に限り、ドライランを確認してください。状態やレポートの確認中に照合を実行しないでください。同様に、apply-decisions は明示的に承認された適用ワークフローでのみ使用し、まずドライランから始めてください。

修復ジョブを 1 つ作成する

Issue/PR の参照とメンテナーのプロンプトからジョブを作成します:

pnpm run repair:create-job -- \
  --repo openclaw/openclaw \
  --refs 123,456 \
  --prompt-file /tmp/clawsweeper-prompt.md

既存の ClawSweeper レポートから作成します:

pnpm run repair:create-job -- \
  --from-report ../clawsweeper/records/openclaw-openclaw/items/123.md

ジョブ作成ツールは、別のジョブを書き込む前に、既存のオープン PR、本文の一致、またはリモートの clawsweeper/<cluster-id> ブランチがないか確認します。確認には --dry-run を使用してください。重複防止チェックが古くなっていると判断した場合に限り、--force を使用してください。

検証してコミットした後、ディスパッチします:

pnpm run repair:validate-job -- jobs/openclaw/inbox/clawsweeper-openclaw-openclaw-123.md
pnpm run repair:dispatch -- jobs/openclaw/inbox/clawsweeper-openclaw-openclaw-123.md \
  --mode autonomous \
  --runner blacksmith-4vcpu-ubuntu-2404 \
  --execution-runner blacksmith-16vcpu-ubuntu-2404 \
  --model gpt-6-astra

作成したばかりのジョブは、ジョブファイルをコミットしてプッシュする前にディスパッチしないでください。ワークフローは GitHub からジョブのパスを読み取ります。

PR の置き換え

有用ではあるものの、編集できない/古い/安全でないソース PR の場合は、メンテナーへのプロンプトで明示してください。

Treat #123 as useful source work. If the source branch cannot be safely updated
because it is uneditable, stale, draft-only, unmergeable, or unsafe, create a
narrow ClawSweeper replacement PR instead of waiting. Preserve the source PR
author as co-author, credit the source PR in the replacement PR body, and close
only that source PR after the replacement PR is opened.

ワーカーは repair_strategy=replace_uneditable_branch を出力し、source_prs にソース PR の URL を列挙する必要があります。決定論的な実行ツールは clawsweeper/<cluster-id> を作成または更新し、ボット以外のソース作成者を Co-authored-by トレーラーとして追加します。置き換えが存在してから、置き換えられたソース PR をクローズします。

ゲート

この実行期間に対する明示的な権限がある場合に限り、実行ゲートを変更してください。変更する前に、元の状態と、合意された復元内容を記録してください。

gh variable set CLAWSWEEPER_ALLOW_EXECUTE --repo openclaw/clawsweeper --body 1
gh variable set CLAWSWEEPER_ALLOW_FIX_PR --repo openclaw/clawsweeper --body 1
gh variable set CLAWSWEEPER_ALLOW_MERGE --repo openclaw/clawsweeper --body 1
gh variable set CLAWSWEEPER_ALLOW_AUTOMERGE --repo openclaw/clawsweeper --body 1

承認された期間に復元が含まれており、かつ所有者と状態が引き続き一致する場合に限り、ゲートを復元してください。それ以外の場合は変更せずに残してください。別の有効なメンテナー期間で、意図的に 1 のままにしている場合があります。一般的なクリーンアップとして、すべてのゲートをリセットしてはいけません。

重要なゲート:

  • CLAWSWEEPER_ALLOW_EXECUTE:決定論的な書き込みレーンを許可します。
  • CLAWSWEEPER_ALLOW_FIX_PR:ブランチの修復/置き換え PR を許可します。
  • CLAWSWEEPER_ALLOW_MERGE:マージ可能なアプリケーターを許可します。
  • CLAWSWEEPER_ALLOW_AUTOMERGE:コメントルーターによる自動マージを許可します。
  • CLAWSWEEPER_COMMENT_ROUTER_EXECUTE:スケジュールされたコメントルーティングによる返信の投稿と修復のディスパッチを許可します。

メンテナーへのメンション

メンテナー向けの制御には、すべて @clawsweeper コメントを優先してください。スラッシュコマンドは互換性エイリアスとして引き続き解析されますが、例や実際のガイダンスではメンションを使用してください。

@clawsweeper status
@clawsweeper re-review
@clawsweeper review
@clawsweeper fix ci
@clawsweeper address review
@clawsweeper rebase
@clawsweeper autofix
@clawsweeper automerge
@clawsweeper approve
@clawsweeper explain
@clawsweeper stop
@clawsweeper <question or safe action request>
@clawsweeper[bot] re-review
@openclaw-clawsweeper fix ci
@openclaw-clawsweeper[bot] fix ci

受け付けるエイリアス:review、re-review、rereview、review again、rerun review、run review。review と re-review は、修復を開始せずに、新しい ClawSweeper による issue/PR レビューをディスパッチします。fix ci、address review、rebase は、ClawSweeper の PR、または clawsweeper:autofix か clawsweeper:automerge をオプトインした PR に限り、修復ワーカーをディスパッチします。autofix はマージを行わず、制限付きのレビュー/修正ループを実行します。automerge は制限付きのレビュー/修正/マージループを実行しますが、GitHub がレビュー可能とマークするまでは、ドラフト PR の修正のみを行います。

@clawsweeper why did automerge stop? や @clawsweeper: can you explain this failure? のような自由形式のメンテナーメンションは、メンションのテキストを一回限りの指示として、読み取り専用のアシストレビューをディスパッチします。回答は、次に投稿される公開の ClawSweeper レビューコメントに記載されます。操作を示す文章が GitHub を直接変更することはありません。既存の構造化された推奨事項に対応し、通常の決定論的なゲートを通過する必要があります。

デフォルトで受け付けるメンテナー:OWNER、MEMBER、COLLABORATOR。フォールバックでは、リポジトリ権限が admin、maintain、write のいずれかであれば受け付けます。コントリビューターのコメントは、返信せずに無視されます。

ルーターを手動で実行するには:

pnpm run repair:comment-router -- --repo openclaw/openclaw --lookback-minutes 180
pnpm run repair:comment-router -- --repo openclaw/openclaw --execute --wait-for-capacity

CLAWSWEEPER_COMMENT_ROUTER_EXECUTE=1 でない限り、スケジュールされたルーティングはドライランのままです。

信頼された Autofix と Automerge

@clawsweeper autofix は、既存の PR を制限付きのレビュー/修正ループの対象にします。 @clawsweeper automerge は、既存の PR を制限付きのレビュー/修正/マージ ループの対象にします。ルーターは次の処理を行います。

  • メンテナーの権限を確認します。
  • PR に clawsweeper:autofix または clawsweeper:automerge のラベルを付けます。
  • 現在の head SHA を対象に ClawSweeper のレビューをディスパッチします。
  • 永続的な採用済みジョブを作成するか、再利用します。
  • 設定された上限まで修正します。
  • autofix PR やドラフト PR をマージすることはありません。
  • automerge PR は、ClawSweeper が現在の正確な head に合格し、チェックがすべて成功し、GitHub がマージ可能と判定し、人によるレビューのラベルがなく、PR がドラフトではなく、両方のマージゲートが開いている場合にのみマージします。

変更履歴の欠落は、レビュー指摘にもマージブロッカーにもなりません。CHANGELOG.md はリリース専用です。ユーザー向けのリリースノートの情報は PR 本文または squash メッセージに記録し、通常の修正で変更履歴を編集しないでください。

マージゲートが閉じている状態で ClawSweeper が合格した場合は、マージする代わりに clawsweeper:merge-ready のラベルを付けてコメントします。@clawsweeper stop は clawsweeper:human-review を追加します。

PR の作成と ClawSweeper の automerge 有効化を依頼された場合、ローカルの OpenClaw チェックアウトを PR ブランチのままにしないでください。PR の作成とプッシュが完了し、@clawsweeper automerge のリクエストが投稿されたか、別の方法で確認された後、作業ツリーがクリーンであれば、ローカルのチェックアウトを main に戻し、fast-forward してください。

git switch main
git pull --ff-only

無関係なローカル編集や進行中のリベースによって切り替えられない場合は、作業を退避、削除、上書きせず、阻害要因を報告してください。

修正上限:

CLAWSWEEPER_MAX_REPAIRS_PER_PR=10
CLAWSWEEPER_MAX_REPAIRS_PER_HEAD=1

セキュリティ境界

承認されていないセキュリティ上重要な作業を ClawSweeper Repair にステージしないでください。脆弱性の報告、CVE/GHSA/アドバイザリー関連の作業、漏えいしたシークレット/トークン/キー、平文でのシークレット保存、SSRF、XSS、CSRF、RCE、認証回避、権限昇格、機密データの漏えいは、OpenClaw の中央セキュリティ対応に回してください。

clawsweeper:autofix または clawsweeper:automerge の対象として明示的に指定された PR では、セキュリティ上重要なレビュー指摘に対して、範囲を限定した修正をディスパッチできます。ただし、後続の正確な head に対するレビューで指摘がなく、通常のマージゲートを通過するまで、マージはブロックされます。ClawSweeper の決定論的なセキュリティマーカー、ラベル、ジョブのフロントマターを信頼してください。曖昧な文面からセキュリティ対応を推測しないでください。

モニタリング

レシーバーワークフロー:

gh run list --repo openclaw/clawsweeper --workflow sweep.yml \
  --limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url
gh run list --repo openclaw/clawsweeper --workflow repair-cluster-worker.yml \
  --limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url
gh run list --repo openclaw/clawsweeper --workflow repair-comment-router.yml \
  --limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url
gh run list --repo openclaw/clawsweeper --workflow github-activity.yml \
  --limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url

対象のディスパッチャー:

gh run list --repo openclaw/openclaw --workflow "ClawSweeper Dispatch" \
  --limit 8 --json databaseId,displayTitle,event,status,conclusion,headSha,url

出力の読み方

指摘や失敗については、次の内容を要約してください。

  • 対象のリポジトリ、項目/PR、実行、レポートのパス
  • 結果、信頼度、重大度、正確な阻害要因
  • 影響を受けるファイルまたはクラスター参照
  • 検証コマンドとその成否
  • 変更ゲートが開いていたか閉じていたか
  • 次に実行する決定論的なアクション

ほうきを小さく保ちます。クラスターは 1 つ、ブランチは 1 つ、PR は 1 つにし、証拠を絞り込み、担当者が確認できる明確な情報を残してください。

コメント