Community코딩 & 개발github.com

clownfish-cloud-pr

GitHub Actions에서 Clownfish를 실행하여 이슈/PR 참조, ClawSweeper 보고서, 커스텀 메인테이너 프롬프트로 가드된 구현 PR을 생성하거나 업데이트하거나, 기존 Clownfish PR을 ClawSweeper 검토 기반 클라우드 자동 병합에 포함시킬 때 사용합니다.

clownfish-cloud-pr란 무엇인가요?

이 스킬은 Codex가 Clownfish를 통해 클라우드 기반 PR 생성 및 관리를 수행할 수 있도록 지원합니다. 주요 기능으로는 이슈/PR 참조와 커스텀 프롬프트를 사용한 PR 생성, ClawSweeper 보고서 기반 작업 생성, 메인테이너의 `/clownfish` 명령어 처리(상태 확인, CI 수정, 리뷰 반영, 리베이스, 자동 병합 등), 그리고 ClawSweeper 검토 기반의 제한된 자동 병합이 포함됩니다. 모든 쓰기 작업은 결정론적 스크립트를 통해 이루어지며, Codex 워커는 직접 GitHub 토큰을 가지지 않습니다. 병합 게이트는 기본적으로 닫혀 있으며, Peter가 명시적으로 열어야 하고, 자동 병합 윈도우도 명시적 요청이 있을 때만 활성화됩니다. 각 클러스터는 단일 브랜치(`clownfish/<cluster-id>`)와 단일 PR만 가지며, 중복 생성은 방지되고, 수리 루프는 최대 횟수로 제한됩니다.

지원 대상~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에게 이슈/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이 아닌 경우, 실행/자율 워크플로우 실행은 계획 전용/변경 불가 상태로 유지됩니다.

작업 하나 생성

참조와 커스텀 프롬프트로부터:

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 레이블을 지정합니다. 실패한 검사, 오래된 헤드, 충돌, 초안 상태 또는 사람 검토 레이블이 있는 경우 이 레이블을 받지 못해야 합니다. /clownfish stop으로 일시 중지하면 clownfish:human-review가 추가됩니다.

수리 루프는 CLOWNFISH_CLAWSWEEPER_MAX_REPAIRS_PER_PR(기본값 5) 및 CLOWNFISH_CLAWSWEEPER_MAX_REPAIRS_PER_HEAD(기본값 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.

관련 스킬