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

OpenClaw プレリリースプラグインテスト

バンドルプラグイン、パッケージアーティファクト、ライフサイクルコマンド、doctor/fix、設定ラウンドトリップ、ゲートウェイ起動、SDK互換性、Docker E2E、パッケージ受け入れ、Testbox検証にわたるプレリリースのOpenClawプラグイン検証を計画し実行します。

OpenClaw プレリリースプラグインテスト とは?

このスキルは、OpenClawプラグインシステムのリリース前検証を包括的に支援します。ソースコードテストだけでなく、製品としてのプラグインシステムを証明することに焦点を当てており、バンドルプラグインのライフサイクル(インストール、有効化、無効化、アンインストール)、パッケージアーティファクトの動作、doctor/fix設定の冪等性、設定のラウンドトリップ、ゲートウェイの起動とブートストラップ、外部プラグイン向けのパブリックSDK互換性などを検証します。主な実行環境としてGitHub Package Acceptance、Blacksmith Testbox、ローカルコマンドを推奨順に提案し、検証結果を信頼性マトリクスで報告します。このスキールは`openclaw-testing`を補完するもので、どちらのスキルも併用することが推奨されます。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/openclaw-pre-release-plugin-testing

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

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

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

ドキュメント

OpenClaw プレリリースプラグインテスト は何をしますか?

ユーザーがプラグインリリースの確信度、プラグインライフサイクルの一掃、パッケージアーティファクトのプラグイン証明、または「リリース前に他に何をテストすべきか?」を尋ねた場合にこのスキルを使用します。これは openclaw-testing を補完します。最も安価で安全なランナーを選択したり、失敗したレーンをデバッグする際には、そのスキルも使用してください。

目標

ソーステストだけでなく、製品としてのプラグインシステムを証明すること:

  • バンドルプラグインのライフサイクル:インストール、インスペクト、有効化、無効化、アンインストール
  • クリーンな HOME からのパッケージアーティファクトの動作
  • doctor/fix/設定の検証と冪等性
  • 設定の検出と設定ラウンドトリップ
  • ステータス/ログの可視性と診断
  • プラグインメタデータスナップショットを使用したゲートウェイの起動/ブートストラップ
  • 実際の外部プラグイン向けのパブリックSDK互換性
  • 安全な認証情報が存在する場合のみの、ある程度ライブなプロバイダー/チャネルプローブ

最初のチェック

OpenClaw リポジトリルートから:

pnpm docs:list
git status --short --branch
readlink node_modules
pnpm changed:lanes --json

Codex ワークツリー (.codex/worktrees 内) では、node_modules はメインの OpenClaw チェックアウトへのシンボリックリンクである必要があります。そこで pnpm install を実行しないでください。広範囲またはパッケージが多い証明には、Blacksmith Testbox または GitHub Actions を使用してください。

ランナーの選択

以下の順序を推奨します:

  1. GitHub Package Acceptance:インストール可能なパッケージの製品証明用。
  2. ci-build-artifacts-testbox.yml Testbox:Docker/パッケージレーンにシードされた dist、dist-runtime、およびパッケージキャッシュが必要な場合。
  3. ci-check-testbox.yml Testbox:ソースチェック、ターゲットを絞った Vitest、パッケージ境界チェック、または焦点を絞った Docker レーン用。
  4. ローカルのターゲットコマンドのみ:小規模なフォーマット/静的/ユニットプローブ用。

古いスパースワークツリーからの長時間のパッケージ Docker 実行は避けてください。Testbox 同期が数百の変更ファイルを報告したり、パッケージ入力を削除し始めた場合は、停止して現在の main から新しいボックスを準備するか、Package Acceptance に切り替えてください。

既存のベースライン

新しいカバレッジを考案する前に、以下を実行または確認してください:

OPENCLAW_TESTBOX=1 pnpm check:changed
pnpm run test:extensions:package-boundary:canary
pnpm run test:extensions:package-boundary:compile
pnpm test:docker:plugins
OPENCLAW_PLUGINS_E2E_CLAWHUB=0 pnpm test:docker:plugins
pnpm test:docker:plugin-update
pnpm test:docker:bundled-channel-deps:fast

完全なバンドルインストール/アンインストールの証明のために、パッケージ化されたスイープをシャーディングします:

OPENCLAW_BUNDLED_PLUGIN_SWEEP_TOTAL=8 \
OPENCLAW_BUNDLED_PLUGIN_SWEEP_INDEX=<0-7> \
pnpm test:docker:bundled-plugin-install-uninstall

期待される現在のパッケージスコープ:シャード 0-7 にわたる 116 の公開バンドルプラグイン。プライベート QA プラグインは、パッケージに明示的に含まれていない限り、ソースモードのみです。

信頼性マトリクス

プレリリース承認のためにこのマトリクスを使用します。合格/不合格、実行 URL/Testbox ID、パッケージ SHA/バージョン、およびスキップされたライブの理由を記録します。

表面証明推奨ランナー
パッケージアーティファクトPackage Acceptance suite_profile=package またはカスタムレーンGitHub Actions
バンドルライフサイクル8シャード test:docker:bundled-plugin-install-uninstallTestbox またはリリース Docker
外部プラグインtest:docker:plugins および plugins-offlineTestbox/パッケージ受け入れ
更新 (no-op)test:docker:plugin-updateTestbox/パッケージ受け入れ
チャネルランタイム依存関係test:docker:bundled-channel-deps:fast および主要チャネルTestbox/パッケージ受け入れ
Doctor/fixシードされた不良設定 + doctor --fix --non-interactive新しい Docker/Testbox ハーネス
設定ラウンドトリップconfig set/get、インスペクト、doctor、リロード、ハッシュ比較新しい Docker/Testbox ハーネス
ゲートウェイブートストラップクリーンな HOME、有効/無効化されたプラグイングループ、ステータス JSON新しい Docker/Testbox ハーネス
SDK 互換性SDK サブパスを使用するディレクトリ、tgz、および file: 外部プラグインtest:docker:plugins および新しいスモークテスト
ライブ的なもの存在する環境に対してのみ、編集されたプロバイダー/チャネルプローブTestbox ライブレーン

パッケージ受け入れ計画

リリースブランチ、ベータ、または候補パッケージを検証する際にこれを使用します:

gh workflow run package-acceptance.yml \
  --repo openclaw/openclaw \
  --ref main \
  -f workflow_ref=main \
  -f source=ref \
  -f package_ref=<branch-or-sha> \
  -f suite_profile=custom \
  -f docker_lanes='plugins-offline plugin-update bundled-channel-deps-compat doctor-switch update-channel-switch config-reload mcp-channels npm-onboard-channel-agent' \
  -f telegram_mode=mock-openai

公開ベータ証明には source=npm -f package_spec=openclaw@beta を使用します。リリースプロセスで別段の指示がない限り、workflow_ref は信頼された現在のハーネスコードのままにします。

新しい Testbox ハーネス計画

さらに確実性が必要な場合は、1 つのパッケージ tarball とシャーディングされたプラグインリストを使用する plugin-lifecycle-matrix Docker レーンを追加または実行します。プラグインごとに:

  1. クリーンな HOME で開始します。
  2. plugins list --json をキャプチャします。
  3. plugins install <id> を実行します。
  4. plugins inspect <id> --json を実行します。
  5. plugins disable <id> を実行し、無効化された可視性をアサートします。
  6. 設定が必要なプラグインを除き、plugins enable <id> を実行します(設定がない場合)。
  7. plugins registry --refresh を実行します。
  8. doctor --non-interactive を実行します。
  9. plugins uninstall <id> --force を実行します。
  10. 設定エントリ、許可/拒否の残骸、インストールレコード、管理ディレクトリ、またはバンドルされた dist/extensions/... ロードパスが残っていないことをアサートします。
  11. 診断に level: "error" が含まれておらず、出力が秘密のような値を編集していることをアサートします。

memory-lancedb は特別に扱います。設定が必要です。最初に、埋め込み設定なしではインストールが有効にならないことをアサートし、次に設定されたケースを実行します。

Doctor/Fix マトリクス

不良状態をシードし、doctor --fix --non-interactive でそれらを修復することを要求し、その後 doctor を再度実行して冪等性を要求します:

  • 古い plugins.allow
  • 古い plugins.entries
  • 欠落しているチャネルプラグインに対する古いチャネル設定
  • 無効な plugins.entries.<id>.config
  • plugins.load.paths 内のパッケージ化されたバンドルパス
  • レガシー plugins.installs
  • ランタイム依存関係をステージングしてはならない無効化されたチャネル/プラグイン設定
  • 変更されないままにしておかなければならないルート所有のグローバルパッケージツリー

ゲートウェイブートストラップマトリクス

クリーンな状態で Docker 内のパッケージ化された OpenClaw を起動します:

  • プロバイダープラグインが有効、認証情報なし:警告付きで準備完了、クラッシュなし
  • チャネルプラグインが無効に設定:ランタイム依存関係がステージングされていない
  • 起動時アクティブ化プラグインが有効:準備完了、ステータスに反映されている
  • 無効な単一プラグイン設定:不良プラグインはスキップ/隔離され、他のプラグインはそのまま

アサート:

  • ゲートウェイが準備完了に達する
  • openclaw status --json にプラグイン診断が含まれている
  • openclaw plugins inspect --all --json が解析可能である
  • パッケージツリーが変更されていない
  • ログに生のトークンが含まれていない

設定ラウンドトリップの代表例

詳細な設定ラウンドトリップには、すべてのプラグインではなく、代表的なプラグインファミリーを使用します:

  • プロバイダー:openai、anthropic、mistral、openrouter
  • チャネル:telegram、discord、slack、whatsapp
  • メモリ:memory-lancedb
  • 機能/ランタイム:browser、acpx、tokenjuice

各代表例について:

  1. 可能な場合は CLI を通じて設定を書き込みます。
  2. config get または JSON で読み戻します。
  3. plugins inspect を実行します。
  4. doctor --non-interactive を実行します。
  5. 該当する場合はゲートウェイ設定リロードをトリガーします。
  6. no-op コマンドの前後で設定ハッシュを比較します。

外部 SDK スモークテスト

パッケージ Docker レーンで、小さな外部プラグインを作成し、以下からインストールします:

  • ローカルディレクトリ
  • .tgz
  • file: npm スペック

CJS と ESM の形式、および焦点を絞った openclaw/plugin-sdk/* サブパスをインポートする少なくとも 1 つのプラグインをカバーします。plugins inspect がそのツール、ゲートウェイメソッド、CLI コマンド、またはサービスを認識することをアサートします。

ライブ的プローブのルール

ライブ的な作業の前に、Testbox で許可された環境をソースし、編集された可用性マトリクス(存在/不在のみ、値を決して含まない)を生成します。

存在する認証情報に対してのみプローブを実行します。ユーザーに表示されるメッセージを送信するよりも、認証/カタログ/ステータスプローブを優先します。プローブが外部ユーザー、チャネル、またはワークスペースに接触する可能性がある場合は、停止してユーザーに確認します。

レポート

次の形式でレポートします:

package/ref:
tbx ids / run urls:
matrix:
  bundled lifecycle:
  package acceptance:
  doctor/fix:
  gateway bootstrap:
  config round-trip:
  sdk external:
  live-ish:
failures:
skips:
next highest-value gap:

失敗が製品の動作ではなく Testbox の同期/環境の損傷である場合は、それを明確に述べ、クリーンな再実行または現在の main との比較で証明します。

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.

関連スキル