OpenClawSkills
GitHub
リファレンス • 5分で読める

リリースプロセス

npm + macOS アプリの段階的なリリースチェックリスト

リポジトリのルートから pnpm(Node 22+)を使用します。タグ付け/公開の前に作業ツリーをクリーンに保ちます。

Tutorial.step

オペレータートリガー

オペレーターが「リリース」と言ったとき、すぐにこの事前チェックを行います(ブロックされている場合を除き、追加の質問はありません):

- このドキュメントと docs/platforms/mac/release.md を読みます。

- ~/.profile から環境変数をロードし、SPARKLE_PRIVATE_KEY_FILE + App Store Connect 変数が設定されていることを確認します(SPARKLE_PRIVATE_KEY_FILE は ~/.profile にある必要があります)。

- 必要に応じて、~/Library/CloudStorage/Dropbox/Backup/Sparkle の Sparkle キーを使用します。

1. バージョンとメタデータ

- [ ] package.json のバージョンを増やします(例:2026.1.29)。

- [ ] pnpm plugins:sync を実行して、拡張パッケージのバージョンと変更ログを合わせます。

- [ ] CLI/バージョン文字列を更新します:src/cli/program.ts と src/provider-web.ts の Baileys ユーザーエージェント。

- [ ] Confirm package metadata (name, description, repository, keywords, license) and bin map points to openclaw.mjs for openclaw.

- [ ] 依存関係が変更された場合、pnpm install を実行して pnpm-lock.yaml を最新にします。

2. ビルドとアーティファクト

- [ ] A2UI 入力が変更された場合、pnpm canvas:a2ui:bundle を実行し、更新された src/canvas-host/a2ui/a2ui.bundle.js をコミットします。

- [ ] pnpm run build(dist/ を再生成します)。

- [ ] npm パッケージ files にすべての必要な dist/* フォルダが含まれていることを確認します(特にヘッドレスノード + ACP CLI 用の dist/node-host/** と dist/acp/**)。

- [ ] dist/build-info.json が存在し、期待される commit ハッシュが含まれていることを確認します(CLI バナーはこれを npm インストールに使用します)。

- [ ] オプション:ビルド後に npm pack --pack-destination /tmp を実行します。tarball の内容を検査し、GitHub リリース用に手元に置いておきます(コミットしないでください)。

3. 変更ログとドキュメント

- [ ] ユーザー向けのハイライトで CHANGELOG.md を更新します(ファイルがない場合は作成します)。エントリをバージョンごとに厳密に降順に保ちます。

- [ ] README の例/フラグが現在の CLI の動作と一致していることを確認します(特に新しいコマンドやオプション)。

4. Validation

- [ ] pnpm build

- [ ] pnpm check

- [ ] pnpm test(カバレッジ出力が必要な場合は pnpm test:coverage)

- [ ] pnpm release:check(npm pack の内容を検証します)

- [ ] OPENCLAW_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smoke(Docker インストールスモークテスト、高速パス;リリース前に必須)

- If the immediate previous npm release is known broken, set OPENCLAW_INSTALL_SMOKE_PREVIOUS=<last-good-version> or OPENCLAW_INSTALL_SMOKE_SKIP_PREVIOUS=1 for the preinstall step.

- [ ] (オプション)完全なインストーラースモークテスト(非 root + CLI カバレッジを追加):pnpm test:install:smoke

- [ ] (オプション)インストーラー E2E(Docker、curl -fsSL https://openclaw.ai/install.sh | bash を実行し、オンボードし、実際のツール呼び出しを実行します):

- pnpm test:install:e2e:openai(OPENAI_API_KEY が必要)

- pnpm test:install:e2e:anthropic(ANTHROPIC_API_KEY が必要)

- pnpm test:install:e2e(両方のキーが必要;両方のプロバイダーを実行します)

- [ ] (オプション)変更が送信/受信パスに影響する場合、Web ゲートウェイをスポットチェックします。

5. macOS アプリ(Sparkle)

- [ ] macOS アプリをビルド + 署名し、配布用に zip します。

- [ ] Sparkle appcast を生成し(scripts/make_appcast.sh 経由の HTML ノート)、appcast.xml を更新します。

- [ ] アプリ zip(およびオプションの dSYM zip)を GitHub リリースに添付する準備をしておきます。

- [ ] macOS リリースに従って、正確なコマンドと必要な環境変数を確認します。

- APP_BUILD は数値 + 単調でなければなりません(-beta なし)、Sparkle がバージョンを正しく比較できるようにします。

- 公証する場合、App Store Connect API 環境変数から作成された openclaw-notary キーチェーンプロファイルを使用します(macOS リリースを参照)。

6. Publish (npm)

- [ ] git ステータスがクリーンであることを確認します。必要に応じてコミットしてプッシュします。

- [ ] 必要に応じて npm login(2FA を確認)。

- [ ] npm publish --access public(プレリリースには --tag beta を使用)。

- [ ] レジストリを確認します:npm view openclaw version、npm view openclaw dist-tags、および npx -y [email protected] --version(または --help)。

#

7. GitHub リリース + appcast

- [ ] タグ付けとプッシュ:git tag vX.Y.Z && git push origin vX.Y.Z(または git push --tags)。

- [ ] vX.Y.Z の GitHub リリースを作成/更新し、タイトル openclaw X.Y.Z を使用します(タグだけではありません)。本文には、そのバージョンの完全な変更ログセクション(ハイライト + 変更 + 修正)を含める必要があります。インライン(裸のリンクなし)で、本文内でタイトルを繰り返してはいけません。

- [ ] アーティファクトを添付します:npm pack tarball(オプション)、OpenClaw-X.Y.Z.zip、および OpenClaw-X.Y.Z.dSYM.zip(生成された場合)。

- [ ] 更新された appcast.xml をコミットしてプッシュします(Sparkle は main からフィードします)。

- [ ] クリーンな一時ディレクトリ(package.json なし)から、npx -y [email protected] send --help を実行して、インストール/CLI エントリポイントが機能することを確認します。

- [ ] リリースノートを発表/共有します。

Tutorial.step

トラブルシューティング(2.0.0-beta2 リリースからのメモ)

- npm pack/publish がハングするか、巨大な tarball を生成する:dist/OpenClaw.app(およびリリース zip)の macOS アプリバンドルがパッケージに取り込まれます。package.json files 経由で公開コンテンツをホワイトリストに登録して修正します(dist サブディレクトリ、ドキュメント、スキルを含め、アプリバンドルを除外します)。npm pack --dry-run で dist/OpenClaw.app がリストされていないことを確認します。

- dist-tags の npm auth Web ループ:OTP プロンプトを取得するために従来の認証を使用します:

- NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add [email protected] latest

- npx 検証が ECOMPROMISED: Lock compromised で失敗する:新しいキャッシュで再試行します:

- NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y [email protected] --version

- 後期修正後にタグの再ポイントが必要:タグを強制更新してプッシュし、GitHub リリースアセットがまだ一致していることを確認します:

- git tag -f vX.Y.Z && git push -f origin vX.Y.Z

Tutorial.step

プラグイン公開スコープ(npm)

私たちは @openclaw/* スコープの下の既存の npm プラグインのみを公開します。npm にないバンドルプラグインはディスクツリーのみのままです(extensions/** にまだ提供されています)。

リストを派生するプロセス:

1. npm search @openclaw --json を実行し、パッケージ名をキャプチャします。

2. extensions/*/package.json 名前と比較します。

3. 共通部分(既に npm 上)のみを公開します。

現在の npm プラグインリスト(必要に応じて更新):

- @openclaw/bluebubbles

- @openclaw/diagnostics-otel

- @openclaw/discord

- @openclaw/lobster

- @openclaw/matrix

- @openclaw/msteams

- @openclaw/nextcloud-talk

- @openclaw/nostr

- @openclaw/voice-call

- @openclaw/zalo

- @openclaw/zalouser

Release notes must also call out new optional bundled plugins that are **not on by default** (example: tlon).