Community코딩 & 개발github.com

release-openclaw-mac

OpenClaw macOS 릴리스 서명, 공증(notarization), 앱캐스트(appcast) 및 자산 프로모션을 실행하거나 복구합니다.

release-openclaw-mac란 무엇인가요?

이 기술은 OpenClaw 프로젝트의 macOS 릴리스를 최종 출시하는 데 필요한 모든 단계를 자동화하는 전문 AI 에이전트 스킬입니다. 여기에는 코드 서명, Apple의 공증(notarization) 제출, GitHub 릴리스에 자산 업로드, 앱캐스트 파일 업데이트가 포함됩니다. 필요한 인증 정보(Apple Store Connect API 키, 1Password 서비스 토큰)를 안전하게 관리하고, 공개 저장소 `openclaw/openclaw`와 제한된 릴리스-ops 저장소 `openclaw/releases` 간의 조정을 처리합니다. 이 스킬은 정식 안정 릴리스에만 적용되며 확장 안정 트랙에는 사용하지 않습니다. macOS 작업은 npm 릴리스와 병렬로 실행되며 실패 시 npm 또는 ClawHub 릴리스를 차단하지 않고 별도로 복구할 수 있습니다. 또한 실패한 실행을 재개하는 체크포인트 기반 재개 메커니즘을 지원합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/release-openclaw-mac

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

OpenClaw Mac 릴리스

$release-openclaw-maintainer, $release-openclaw-ci, $one-password 및 (존재하는 경우) $release-private와 함께 사용하세요. 안정적인 macOS 자산, release-ops mac 사전 점검, 공증, 앱캐스트 프로모션 또는 mac 릴리스 복구가 포함될 때 사용합니다.

이것은 일반적인 안정 릴리스 스킬입니다. 확장 안정(stable) 트랙에는 호출하지 마세요. 해당 트랙의 GitHub 릴리스는 공유 검증 증거를 포함하지만 macOS 자산이나 앱캐스트 프로모션을 상속하지 않습니다.

릴리스 승인

명시적인 안정 릴리스 또는 전체 릴리스 요청에는 운영자가 범위를 제한하지 않는 한 macOS 게시가 포함됩니다. 별도의 macOS 동의를 구하지 않고 검증, 서명, 공증, 프로모션 및 확인을 계속 진행하세요. 정확한 릴리스 ID와 모든 아티팩트 검사를 유지하세요. macOS 게시는 npm과 병렬로 실행되며 npm을 차단하지 않습니다. macOS 실패는 npm/ClawHub 릴리스, GitHub 릴리스 마무리 또는 주요 종료를 지연시키지 않습니다. 병렬로 수정하세요.

현재 소유자가 구성한 환경 정책을 따르세요. 추가 검토자 요구 사항을 임의로 만들거나 오래된 요구 사항을 재현하지 마세요. GitHub에서 여전히 승인을 요구하는 경우 실제 규칙을 보고하고 해당 소유자를 통해 해결하세요. 정책 변경은 명시적인 조직 소유자의 지시와 확인된 활성 관리자 멤버십이 필요합니다. 검토자를 사칭하거나 승인을 위조하거나 강제된 규칙을 우회하기 위해 다른 서명 경로를 사용하지 마세요.

자격 증명

  • Peter 소유의 ASC 항목 참조, 키 ID, 발급자 ID 및 서비스 토큰 출처를 $release-private에서 확인하세요.
  • 필드: private_key_p8, key_id, issuer_id.
  • 만료/폐기된 키 증상: xcrun notarytool submit이 HTTP status code: 401. Unauthenticated 오류로 실패합니다.
  • 후보 ASC 자격 증명은 GitHub 시크릿을 설정하기 전에 xcrun notarytool history로 검증하세요.

1Password

  • $one-password를 사용하세요. 모든 op 작업은 단일 영구 tmux 세션 내에서 수행되며 시크릿을 출력하지 않습니다.
  • 가능한 경우 $release-private의 서비스 토큰 지침을 사용하세요.
  • 서비스 토큰이 실패하면 상태 확인(토큰 존재/길이 및 op whoami)만 실행하고 토큰 값을 절대 출력하지 마세요.
  • 데스크톱 앱 인증이 필요하지만 Touch ID를 사용할 수 없는 경우 수동 op account add --signin 경로를 위해 OP_BIOMETRIC_UNLOCK_ENABLED=false를 설정하세요.

GitHub 시크릿

대상 release-ops 저장소 환경: openclaw/releases, 환경 mac-release.

로컬 공증 인증 검증 후에만 설정하세요:

  • APP_STORE_CONNECT_API_KEY_P8
  • APP_STORE_CONNECT_KEY_ID
  • APP_STORE_CONNECT_ISSUER_ID

혼합 소스에서 이 값들을 업데이트하지 마세요. 세 가지 ASC 필드는 모두 동일한 1Password 항목에서 가져와야 합니다.

워크플로 구조

  • openclaw/openclaw는 공개 제품 저장소입니다. GitHub 릴리스 페이지는 macOS 자산이 최종적으로 첨부되는 곳입니다.
  • openclaw/openclaw의 macos-release.yml은 공개 핸드오프 검증 전용입니다. preflight_only 값에 관계없이 macOS 자산에 서명, 공증 또는 업로드하지 않습니다.
  • openclaw/releases는 제한된 릴리스-ops 저장소입니다. macOS 워크플로는 자산에 서명, 공증, 검증하고 이를 openclaw/openclaw GitHub 릴리스로 승격합니다.
  • 공개 릴리스 브랜치는 안정 태그/npm이 이미 라이브 상태인 후에 macOS 전용 패키징 수정 사항을 포함할 수 있습니다.
  • 브랜치 변형을 빌드할 때 release-ops mac 사전 점검/검증에는 source_ref=release/YYYY.M.PATCH를 사용하세요.
  • tag=vYYYY.M.PATCH를 원래 안정 릴리스 커밋을 가리키도록 유지하세요.
  • 실제 mac 게시는 다음을 재사용해야 합니다:
    • 동일한 태그/소스 SHA에 대한 성공적인 release-ops mac 사전 점검 실행
    • 동일한 태그/소스 SHA에 대한 성공적인 release-ops mac 검증 실행
  • Release-ops 사전 점검 및 실제 게시는 서명 및 프로모션 시크릿과 메인 전용 배포 정책을 위해 mac-release 환경을 사용합니다. 승인된 릴리스 운영자는 해당 환경의 현재 규칙에 따라 계속 작업합니다.
  • 사전 점검 소스 SHA가 태그 SHA와 다른 경우 검증도 동일한 source_ref를 사용해야 합니다. 프로모션은 불일치 증거를 거부합니다.

공증

  • OpenClaw는 scripts/notarize-mac-artifact.sh를 사용합니다.
  • xcrun notarytool submit은 --no-s3-acceleration을 사용해야 합니다. 가속 업로드는 notarytool history가 성공하더라도 오해의 소지가 있는 401 오류를 표시할 수 있습니다.
  • 서명은 성공했지만 공증이 401로 즉시 실패하면 ASC 키의 최신 상태를 먼저 확인하세요.
  • 키 파일 작성 후 공증이 몇 분 동안 진행 중 상태로 유지되면 이는 정상적인 Apple 대기 시간이므로 맹목적으로 편집하지 마세요.

디스패치

공개 핸드오프 워크플로는 게시 전에 태그, 소스, 빌드 및 패키지 메타데이터를 검증합니다. 자산을 업로드하지 않으므로 GitHub 릴리스 페이지가 필요하지 않습니다. 이 검증을 실제 게시 워크플로 전에 유지하세요. 핵심 게시자는 GitHub 릴리스 마무리를 소유합니다. macOS 프로모션은 릴리스가 초안 상태인지 또는 이미 공개 상태인지에 관계없이 검증된 자산을 해당 릴리스에 첨부하므로 npm 전환을 기다리지 않습니다.

공개 핸드오프 검증:

gh workflow run macos-release.yml --repo openclaw/openclaw \
  --ref release/YYYY.M.PATCH \
  -f tag=vYYYY.M.PATCH \
  -f preflight_only=true \
  -f public_release_branch=release/YYYY.M.PATCH
  • 워크플로 참조로 공개 릴리스 브랜치를 사용하여 Actions 목록에 release/YYYY.M.PATCH가 표시되어 이전의 안정적인 macOS 핸드오프 실행과 일치하도록 하세요.
  • 이 공개 핸드오프 검증에는 --ref main 또는 --ref vYYYY.M.PATCH를 사용하지 마세요. 워크플로는 tag 입력에서 내부적으로 태그를 체크아웃합니다.

Release-ops 사전 점검:

gh workflow run openclaw-macos-publish.yml --repo openclaw/releases --ref main \
  -f tag=vYYYY.M.PATCH \
  -f source_ref=release/YYYY.M.PATCH \
  -f preflight_only=true \
  -f smoke_test_only=false \
  -f allow_late_calver_recovery=false \
  -f public_release_branch=release/YYYY.M.PATCH

구성된 환경 정책에 따라 서명 및 공증을 통해 실행을 모니터링하세요. 성공적인 사전 점검 실행 ID를 기록하세요. 승인 일시 중지는 성공적인 사전 점검이 아닙니다.

재개가 기본값입니다. 실패(공증 중단, DMG 패키징, 수집기) 후 동일한 사전 점검 명령을 다시 디스패치하면 동일한 태그 및 소스 SHA에 대한 실패하거나 취소된 main 디스패치가 남긴 가장 최근 체크포인트에서 모든 변형이 재개됩니다. 체크포인트가 없는 변형만 다시 빌드됩니다. 실행 로그에 Resuming <variant> from run <id> attempt <n> 또는 Building <variant>가 출력됩니다. ignore_checkpoints=true는 강제로 새로 빌드합니다. resume_notarization_run_id, resume_notarization_run_attempt 및 resume_notarization_variant는 특정 실행 하나를 고정하거나 재개 인덱스가 존재하기 전에 만들어진 체크포인트(macos-resume-<tag>-<variant>-<sha> 아티팩트)에만 전달하세요. 실패한 작업이 현재 실행에 여전히 있는 경우 gh run rerun <run-id> --failed --repo openclaw/releases를 선호합니다.

브랜치 변형 사전 점검에 대한 Release-ops 검증:

gh workflow run openclaw-macos-validate.yml --repo openclaw/releases --ref main \
  -f tag=vYYYY.M.PATCH \
  -f source_ref=release/YYYY.M.PATCH

성공적인 검증 실행 ID를 기록하세요.

실제 게시:

gh workflow run openclaw-macos-publish.yml --repo openclaw/releases --ref main \
  -f tag=vYYYY.M.PATCH \
  -f preflight_only=false \
  -f smoke_test_only=false \
  -f preflight_run_id=<성공한-사전점검-실행> \
  -f validate_run_id=<성공한-검증-실행> \
  -f allow_late_calver_recovery=false \
  -f public_release_branch=release/YYYY.M.PATCH

동일한 릴리스 승인 및 현재 환경 정책에 따라 자산 업로드 및 앱캐스트 게시를 통한 프로모션을 모니터링하세요.

  • Release-ops openclaw/releases 게시/검증 워크플로는 자체 신뢰할 수 있는 main 워크플로 참조에서 실행됩니다. 실제 게시에는 다른 워크플로 참조를 거부하는 보호 장치가 있습니다. 표시된 main 참조는 예상된 것입니다. 공개 OpenClaw 소스는 tag 및 선택적 source_ref로 선택됩니다.

확인

  • gh release view vYYYY.M.PATCH --repo openclaw/openclaw는 zip, dmg, dSYM zip을 표시합니다. npm 게시자가 전환한 후에는 초안도 사전 릴리스도 아닙니다.
  • 공개 main appcast.xml은 OpenClaw-YYYY.M.PATCH.zip을 가리킵니다.
  • 앱캐스트 항목에는 sparkle:version, sparkle:shortVersionString, 길이 및 sparkle:edSignature가 있습니다.

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.

관련 스킬