Communityコーディング&開発github.com

clownfish-cloud-pr

GitHub ActionsでClownfishを起動し、Issue/PR参照、ClawSweeperレポート、カスタムメンテナープロンプトからガード付きの実装PRを作成・更新したり、既存のClownfish PRをClawSweeperによるレビュー付きクラウド自動マージにオプトインする際に使用します。

clownfish-cloud-pr とは?

このスキルは、CodexがClownfishと連携してクラウド上でPRを作成・管理するためのものです。IssueやPRの参照、ClawSweeperレポート、カスタムプロンプトをもとにガード付きの実装PRを生成し、マージゲート(CLOWNFISH_ALLOW_MERGE/AUTOMERGE)で制御されたワークフローを実行します。基本的にマージゲートは閉じた状態を維持し、明示的な許可があった場合のみ開くことができます。また、メンテナーはコメントコマンド(/clownfish status, fix ci, address review, rebase, automerge, explain, stopなど)を使って既存のClownfish PRを操作できます。特にautomergeは既存のClownfish PRに限定され、ClawSweeperのレビュー結果が「pass」「approved」「no-changes」で、かつマージ条件(チェックグリーン、マージ可能、human-reviewラベルなし、SHA一致)をすべて満たした場合のみ実行されます。このスキルは主にopenclaw/clownfishリポジトリ上のGitHub Actionsと連携し、変数やコマンドラインインターフェースを使って動作を制御します。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/clownfish-cloud-pr

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Clownfish Cloud PR

ユーザーがCodexに対して、Issue/PR参照とカスタムプロンプトからClownfishにクラウド上でPRを作成するよう依頼した場合に、このスキルを使用します。

開始

cd ~/Projects/clownfish
git status --short --branch
gh variable list --repo openclaw/clownfish --json name,value \
  --jq 'map(select(.name|test("^CLOWNFISH_"))) | sort_by(.name) | .[] | {name,value}'

Peterが明示的に開放しない限り、マージはゲート付きのままにします。リポジトリ変数が文字通り 1 でない限り、実行/修正ゲートは閉じたままにします。通常の修正PR作業には、意図的な実行ウィンドウが必要です。

gh variable set CLOWNFISH_ALLOW_EXECUTE --repo openclaw/clownfish --body 1
gh variable set CLOWNFISH_ALLOW_FIX_PR --repo openclaw/clownfish --body 1
gh variable set CLOWNFISH_ALLOW_MERGE --repo openclaw/clownfish --body 0
gh variable set CLOWNFISH_ALLOW_AUTOMERGE --repo openclaw/clownfish --body 0

ウィンドウの後は、CLOWNFISH_ALLOW_EXECUTE=0 および CLOWNFISH_ALLOW_FIX_PR=0 にリセットします。これらの変数が存在しないか、1 でない場合、実行/自律ワークフローは計画のみ/変更なしの状態で実行されます。

ジョブを1つ作成する

参照とカスタムプロンプトから作成する場合:

npm run create-job -- \
  --repo openclaw/openclaw \
  --refs 123,456 \
  --prompt-file /tmp/clownfish-prompt.md

ClawSweeperレポートから作成する場合:

npm run create-job -- \
  --from-report ../clawsweeper/records/openclaw-openclaw/items/123.md

このスクリプトは、重複ジョブを書き込む前に、既存のオープンPR/ボディの一致と、clownfish/<cluster-id> という名前のリモートブランチをチェックします。--dry-run を使用して正確なジョブボディを検査し、重複チェックが古いと判断した場合にのみ --force を使用します。

置換PRを依頼する

このスキルは、通常の create-job および dispatch パスを通じて、置換PRの作成をトリガーできます。メンテナの判断をプロンプトに記述します。

#123 を有用なソース作業として扱います。ソースブランチが安全に更新できない場合(編集不可、古い、ドラフトのみ、マージ不可、または安全でない)は、待機する代わりに狭いClownfish置換PRを作成します。ソースPRの作成者を共同作成者として保持し、ソースPRを置換PRボディにクレジットし、置換PRがオープンされた後にのみそのソースPRをクローズします。

ワーカーは repair_strategy=replace_uneditable_branch を出力し、source_prs にソースPRのURLをリストする必要があります。決定論的実行ツールは、clownfish/<cluster-id> を開くか更新し、非ボットのソースPR作成者を Co-authored-by トレーラーに追加し、置換PRが存在した後にのみ、置き換えられたソースPRをクローズします。新しい置換PRは、タッチされた領域にすでに CLOWNFISH_MAX_ACTIVE_PRS_PER_AREA 個のオープンClownfish PRがある場合、ブロックされます。

検証とディスパッチ

npm run validate:job -- jobs/openclaw/inbox/clawsweeper-openclaw-openclaw-123.md
npm run render -- jobs/openclaw/inbox/clawsweeper-openclaw-openclaw-123.md --mode autonomous >/tmp/clownfish-rendered-prompt.md
git add jobs/openclaw/inbox/clawsweeper-openclaw-openclaw-123.md
git commit -m "chore: add ClawSweeper promoted job"
git push origin main
npm run dispatch -- jobs/openclaw/inbox/clawsweeper-openclaw-openclaw-123.md \
  --mode autonomous \
  --runner blacksmith-4vcpu-ubuntu-2404 \
  --execution-runner blacksmith-16vcpu-ubuntu-2404 \
  --model gpt-5.5

ジョブがコミットされプッシュされるまでは --dispatch を使用しないでください。ワークフローはGitHubからジョブパスを読み取ります。

メンテナーコメントコマンド

Clownfishは、ターゲットリポジトリのコメントからも呼び出すことができますが、メンテナーのみ可能です。/clownfish ... または @openclaw-clownfish ... を使用してください。@clownfish は別のGitHubユーザーであるため、使用しないでください。

サポートされているコマンド:

/clownfish status
/clownfish fix ci
/clownfish address review
/clownfish rebase
/clownfish automerge
/clownfish explain
/clownfish stop
@openclaw-clownfish fix ci

ルーターはデフォルトで OWNER、MEMBER、COLLABORATOR のコメントを受け入れます。コントリビューターのコメントは返信なしで無視されます。修復コマンドは、clownfish ラベルまたは clownfish/* ブランチが付いた既存のClownfish PRに対してのみ cluster-worker.yml をディスパッチします。

npm run comment-router -- --repo openclaw/openclaw --lookback-minutes 180
npm run comment-router -- --repo openclaw/openclaw --execute --wait-for-capacity

スケジュールされたルーティングは、openclaw/clownfish リポジトリ変数に CLOWNFISH_COMMENT_ROUTER_EXECUTE=1 が設定されるまで、ドライラン状態を維持します。

制限付きClawSweeperレビュー自動マージ

これは、clownfish/* ブランチとジョブファイルにマッピングされる既存のClownfish PRにのみ使用します。

/clownfish automerge

ルーターは、コメント投稿者がメンテナーであることを確認し、clownfish:automerge を追加し、現在のPRヘッドに対してClawSweeperをディスパッチし、信頼されたClawSweeperマーカーを待ちます。needs-changes / fix-required は通常の修復ワーカーをディスパッチします。pass、approved、no-changes は、マーカーSHAが現在のPRヘッドと一致し、チェックがグリーンで、GitHubがPRがマージ可能と判断し、clownfish:human-review ラベルがなく、両方のマージゲートが開いている場合にのみマージできます。

gh variable set CLOWNFISH_ALLOW_MERGE --repo openclaw/clownfish --body 1
gh variable set CLOWNFISH_ALLOW_AUTOMERGE --repo openclaw/clownfish --body 1

実際のマージコマンドは、GitHubのヘッド一致ガードで固定されているため、ClawSweeperがレビューした後にブランチがプッシュされても、未レビューのヘッドをマージすることはできません。ClawSweeperがパスしたときにいずれかのマージゲートが閉じている場合、Clownfishは準備チェックがすべてパスした後にのみ、PRに clownfish:merge-ready ラベルを付けます。チェックの失敗、古いヘッド、競合、ドラフト状態、または human-review ラベルがある場合は、そのラベルを付けてはいけません。/clownfish stop で一時停止します。これにより clownfish:human-review が追加されます。

修復ループは、CLOWNFISH_CLAWSWEEPER_MAX_REPAIRS_PER_PR(デフォルト 5)および CLOWNFISH_CLAWSWEEPER_MAX_REPAIRS_PER_HEAD(デフォルト 1)によって制限されます。

ガードレール

  • 1つのクラスター、1つのブランチ、1つのPR:clownfish/<cluster-id>。
  • セキュリティに敏感な作業は行いません。
  • 新しい置換PRは、タッチされた領域ごとに CLOWNFISH_MAX_ACTIVE_PRS_PER_AREA によって制限されます。
  • Peterが明示的に依頼しない限り、Clownfishからマージしないでください。
  • Peterが自動マージウィンドウを明示的に依頼しない限り、CLOWNFISH_ALLOW_AUTOMERGE を開かないでください。
  • 修正PRパスが存在するか、ランディングされるか、不要であることが証明されるまでは、重複をクローズしないでください。
  • CodexワーカーはGitHubトークンを取得しません。決定論的スクリプトが書き込みを所有します。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

関連スキル