Get started

Plugin 検証の修正

Plugin 検証の修正

ClawHub は公開前に Plugin パッケージを検証し、自動パッケージスキャンによる検出事項も表示できます。このページでは、作成者向けの検出事項を扱います。つまり、Plugin 作成者が自分のパッケージメタデータ、マニフェスト、SDK インポート、または公開済みアーティファクトで修正できる検出事項です。

内部の Plugin Inspector カバレッジ検出事項は扱いません。完全なレポートに、作成者向けの修正ガイダンスがないスキャナーメンテナンスコードが含まれる場合、それらは Plugin 作成者ではなく OpenClaw メンテナー向けです。

修正を適用したら、再実行します。

bash
clawhub package validate <path-to-plugin>

作成者向けの検出事項

コード ここから開始
package-json-missing パッケージメタデータを追加する
package-openclaw-metadata-missing パッケージの openclaw ブロックを追加する
package-openclaw-entry-missing OpenClaw パッケージエントリーポイントを宣言する
package-entrypoint-missing 宣言済みエントリーポイントを公開する
package-install-metadata-incomplete インストールメタデータを完成させる
package-plugin-api-compat-missing Plugin API 互換性を宣言する
package-min-host-version-drift 最小ホストバージョンを揃える
package-manifest-version-drift パッケージとマニフェストのバージョンを揃える
package-openclaw-unsupported-metadata サポートされていない OpenClaw パッケージメタデータを削除する
package-npm-pack-unavailable npm アーティファクトをパック可能にする
package-npm-pack-entrypoint-missing npm pack 出力にエントリーポイントを含める
package-npm-pack-metadata-missing npm pack 出力にメタデータを含める
manifest-name-missing マニフェスト表示名を追加する
manifest-unknown-fields サポートされていないマニフェストフィールドを削除する
manifest-unknown-contracts サポートされていないコントラクトキーを削除する
legacy-root-sdk-import ルート SDK インポートを置き換える
reserved-sdk-import 予約済み SDK インポートを削除する
sdk-load-session-store セッションストア全体へのアクセスを置き換える
legacy-before-agent-start before_agent_start を置き換える
provider-auth-env-vars プロバイダー環境変数をセットアップメタデータへ移動する
channel-env-vars チャネル環境変数を現在のメタデータにミラーする
security-manifest-schema-unavailable 利用できないセキュリティマニフェストスキーマ参照を削除する
unrecognized-security-manifest サポートされていないセキュリティマニフェストファイルを削除する

パッケージメタデータ

package-json-missing

パッケージルートに package.json が含まれていないため、ClawHub は npm パッケージ、バージョン、エントリーポイント、OpenClaw メタデータを識別できません。

  • nameversiontype を含む package.json を追加します。
  • パッケージが OpenClaw Plugin を含めて配布する場合は、openclaw ブロックを追加します。
  • 最小パッケージの例については Plugin の構築 を、パッケージとマニフェストの分離については Plugin マニフェスト を使用します。
  • clawhub package validate <path-to-plugin> を再実行します。

package-openclaw-metadata-missing

パッケージに package.json はありますが、OpenClaw パッケージメタデータを宣言していません。

  • package.json#openclaw を追加します。
  • openclaw.extensionsopenclaw.runtimeExtensions などのエントリーポイントメタデータを含めます。
  • パッケージを ClawHub 経由で公開またはインストールする場合は、互換性メタデータとインストールメタデータを追加します。
  • 検出に影響する package.json フィールド を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

package-openclaw-entry-missing

パッケージメタデータは存在しますが、OpenClaw ランタイムエントリーポイントを宣言していません。

  • ネイティブ Plugin エントリーポイントには openclaw.extensions を追加します。
  • 公開済みパッケージがビルド済み JavaScript を読み込む必要がある場合は、openclaw.runtimeExtensions を追加します。
  • すべてのエントリーポイントパスをパッケージディレクトリ内に保ちます。
  • Plugin エントリーポイント検出に影響する package.json フィールド を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

package-entrypoint-missing

パッケージは OpenClaw エントリーポイントを宣言していますが、参照されているファイルが検証対象のパッケージにありません。

  • openclaw.extensionsopenclaw.runtimeExtensionsopenclaw.setupEntryopenclaw.runtimeSetupEntry の各パスを確認します。
  • エントリーポイントが dist に生成される場合は、パッケージをビルドします。
  • エントリーポイントが移動した場合は、メタデータを更新します。
  • Plugin エントリーポイント を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

package-install-metadata-incomplete

ClawHub はパッケージのインストール方法または更新方法を判断できません。

  • clawhubSpecnpmSpeclocalPath など、サポートされているインストールソースで openclaw.install を埋めます。
  • 複数のインストールソースが利用できる場合は、openclaw.install.defaultChoice を設定します。
  • 最小 OpenClaw ホストバージョンには openclaw.install.minHostVersion を使用します。
  • 検出に影響する package.json フィールド を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

package-plugin-api-compat-missing

パッケージは、サポートする OpenClaw Plugin API 範囲を宣言していません。

  • package.jsonopenclaw.compat.pluginApi を追加します。
  • ビルドおよびテストの対象にした OpenClaw Plugin API バージョンまたは semver の下限を使用します。
  • これはパッケージバージョンとは分けてください。パッケージバージョンは Plugin リリースを表し、openclaw.compat.pluginApi はホスト API コントラクトを表します。
  • 検出に影響する package.json フィールド を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

package-min-host-version-drift

パッケージの最小ホストバージョンが、パッケージのビルド対象となった OpenClaw バージョンメタデータと一致していません。

  • openclaw.install.minHostVersion を確認します。
  • リリース中に使用された OpenClaw バージョンなど、パッケージ内の OpenClaw ビルドメタデータを確認します。
  • パッケージが実際にサポートするホストバージョン範囲に最小ホストバージョンを揃えます。
  • 検出に影響する package.json フィールド を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

package-manifest-version-drift

パッケージバージョンと Plugin マニフェストバージョンが一致していません。

  • パッケージリリースバージョンとしては package.json#version を優先します。
  • openclaw.plugin.json にも version がある場合は、一致するように更新するか、パッケージメタデータが権威である場合は古いマニフェストバージョンメタデータを削除します。
  • 公開済みメタデータを変更した後は、新しいパッケージバージョンを公開します。
  • Plugin マニフェスト を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

package-openclaw-unsupported-metadata

package.json#openclaw ブロックに、OpenClaw パッケージメタデータとしてサポートされていないフィールドが含まれています。

  • openclaw.bundle などのサポートされていないフィールドを削除します。
  • ネイティブ Plugin メタデータは openclaw.plugin.json に保持します。
  • パッケージエントリーポイント、互換性、インストール、セットアップ、カタログメタデータは、サポートされている package.json#openclaw フィールドに保持します。
  • 検出に影響する package.json フィールド を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

公開済みアーティファクト

package-npm-pack-unavailable

パッケージを、ClawHub が検査または公開するアーティファクトにパックできません。

  • パッケージルートから npm pack --dry-run を実行します。
  • パックの失敗を引き起こす無効なパッケージメタデータ、壊れたライフサイクルスクリプト、または files エントリーを修正します。
  • このパッケージを公開する意図がある場合は、private: true を削除します。
  • clawhub package validate <path-to-plugin> を再実行します。

package-npm-pack-entrypoint-missing

パッケージはパックできますが、パック済みアーティファクトに package.json#openclaw で宣言されたエントリーポイントファイルが含まれていません。

  • npm pack --dry-run を実行し、含まれる予定のファイルを確認します。
  • パックする前に、生成されるエントリーポイントをビルドします。
  • 宣言済みエントリーポイントが含まれるように、files.npmignore、またはビルド出力を更新します。
  • Plugin エントリーポイント を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

package-npm-pack-metadata-missing

パック済みアーティファクトに、ソースパッケージには存在する OpenClaw メタデータがありません。

  • npm pack --dry-run を実行し、含まれるメタデータファイルを確認します。
  • パック済みアーティファクト内の package.jsonopenclaw ブロックが含まれていることを確認します。
  • パッケージがネイティブ OpenClaw Plugin の場合は、openclaw.plugin.json が含まれていることを確認します。
  • パッケージメタデータが除外されないように、files または .npmignore を更新します。
  • Plugin の構築 を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

マニフェストメタデータ

manifest-name-missing

ネイティブ Plugin マニフェストに表示名が含まれていません。

  • 空でない name フィールドを openclaw.plugin.json に追加します。
  • name は人間が読める形式に保ち、id は安定したマシン ID として保ちます。
  • Plugin マニフェスト を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

manifest-unknown-fields

Plugin マニフェストに、OpenClaw がサポートしていないトップレベルフィールドがあります。

  • 各トップレベルフィールドを マニフェストフィールドリファレンスと比較します。
  • openclaw.plugin.json からカスタムフィールドを削除します。
  • パッケージまたはインストールのメタデータは、マニフェストではなく、サポートされている package.json#openclaw フィールドに移動します。
  • clawhub package validate <path-to-plugin> を再実行します。

manifest-unknown-contracts

マニフェストが contracts 内でサポートされていないキーを宣言しています。

  • contracts 配下の各キーを contracts リファレンスと比較します。
  • サポートされていない contract キーを削除します。
  • ランタイム動作は Plugin 登録コードに移動し、contracts は静的なケイパビリティ所有権メタデータに限定します。
  • clawhub package validate <path-to-plugin> を再実行します。

SDK と互換性移行

legacy-root-sdk-import

Plugin が非推奨のルート SDK barrel からインポートしています: openclaw/plugin-sdk

  • ルート barrel インポートを、対象を絞った公開サブパスインポートに置き換えます。
  • definePluginEntry には openclaw/plugin-sdk/plugin-entry を使用します。
  • チャンネルエントリヘルパーには openclaw/plugin-sdk/channel-core を使用します。
  • 狭いインポートを見つけるには、インポート規約Plugin SDK サブパスを使用します。
  • clawhub package validate <path-to-plugin> を再実行します。

reserved-sdk-import

Plugin が、バンドル Plugin または内部互換性用に予約された SDK パスをインポートしています。

  • 予約された OpenClaw 内部 SDK インポートを、ドキュメント化された公開 openclaw/plugin-sdk/* サブパスに置き換えます。
  • その動作に公開 SDK がない場合は、ヘルパーを自分のパッケージ内に保持するか、公開 OpenClaw API をリクエストします。
  • サポートされるインポートを選ぶには、Plugin SDK サブパスSDK 移行を使用します。
  • clawhub package validate <path-to-plugin> を再実行します。

sdk-load-session-store

Plugin はまだ非推奨のセッションストア全体ヘルパー loadSessionStore を使用しています。

  • セッション状態を読み取るときは getSessionEntry(...) または listSessionEntries(...) を使用します。
  • セッション状態を書き込むときは patchSessionEntry(...) または upsertSessionEntry(...) を使用します。
  • セッションストアオブジェクト全体を読み込み、変更し、保存することは避けます。
  • 宣言した互換性範囲が、それを必要とする古い OpenClaw バージョンをまだサポートしている間だけ、loadSessionStore(...) を保持します。
  • ランタイム APIPlugin SDK サブパスを参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

legacy-before-agent-start

Plugin はまだレガシーの before_agent_start フックを使用しています。

  • モデルまたはプロバイダーのオーバーライド作業は before_model_resolve に移動します。
  • プロンプトまたはコンテキストの変更作業は before_prompt_build に移動します。
  • 宣言した互換性範囲が、それを必要とする古い OpenClaw バージョンをまだサポートしている間だけ、before_agent_start を保持します。
  • フックPlugin 互換性を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

provider-auth-env-vars

マニフェストはまだレガシーの providerAuthEnvVars プロバイダー認証メタデータを使用しています。

  • プロバイダーの環境変数メタデータを setup.providers[].envVars にミラーします。
  • サポート対象の OpenClaw 範囲がまだそれを必要とする間だけ、providerAuthEnvVars を互換性メタデータとして保持します。
  • setup リファレンスSDK 移行を参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

channel-env-vars

マニフェストが、現在 ClawHub が期待する setup または config メタデータなしで、レガシーまたは古いチャンネル環境変数メタデータを使用しています。

  • OpenClaw がチャンネルランタイムを読み込まずに setup ステータスを検査できるように、チャンネル環境変数メタデータは宣言的に保ちます。
  • 環境変数駆動のチャンネル setup を、Plugin の形状で使用される現在の setup、チャンネル config、またはパッケージチャンネルメタデータにミラーします。
  • 古いサポート対象の OpenClaw バージョンがまだそれを必要とする間だけ、channelEnvVars を互換性メタデータとして保持します。
  • Plugin マニフェストチャンネル Pluginを参照してください。
  • clawhub package validate <path-to-plugin> を再実行します。

セキュリティマニフェスト

security-manifest-schema-unavailable

パッケージは、ClawHub が利用可能として認識しないスキーマ参照を含む openclaw.security.json を同梱しています。

  • アドバイザリ専用であれば、スキーマ URL を削除します。
  • OpenClaw が公開した後にのみ、ドキュメント化されたバージョン付きスキーマを使用します。
  • clawhub package validate <path-to-plugin> を再実行します。

unrecognized-security-manifest

パッケージはサポートされていないセキュリティマニフェストファイルを同梱しています。

  • OpenClaw がバージョン付きセキュリティマニフェストスキーマと ClawHub の動作をドキュメント化するまで、openclaw.security.json を削除します。
  • マニフェスト contract が存在するまでは、セキュリティセンシティブな動作を公開パッケージドキュメントまたは README に記載しておきます。
  • clawhub package validate <path-to-plugin> を再実行します。

関連

Was this useful?
On this page

On this page