Get started
Plugin 検証の修正
Plugin 検証の修正
ClawHub は公開前に Plugin パッケージを検証し、自動パッケージスキャンによる検出事項も表示できます。このページでは、作成者向けの検出事項を扱います。つまり、Plugin 作成者が自分のパッケージメタデータ、マニフェスト、SDK インポート、または公開済みアーティファクトで修正できる検出事項です。
内部の Plugin Inspector カバレッジ検出事項は扱いません。完全なレポートに、作成者向けの修正ガイダンスがないスキャナーメンテナンスコードが含まれる場合、それらは Plugin 作成者ではなく OpenClaw メンテナー向けです。
修正を適用したら、再実行します。
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 メタデータを識別できません。
name、version、typeを含むpackage.jsonを追加します。- パッケージが OpenClaw Plugin を含めて配布する場合は、
openclawブロックを追加します。 - 最小パッケージの例については Plugin の構築 を、パッケージとマニフェストの分離については Plugin マニフェスト を使用します。
clawhub package validate <path-to-plugin>を再実行します。
package-openclaw-metadata-missing
パッケージに package.json はありますが、OpenClaw パッケージメタデータを宣言していません。
package.json#openclawを追加します。openclaw.extensionsやopenclaw.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.extensions、openclaw.runtimeExtensions、openclaw.setupEntry、openclaw.runtimeSetupEntryの各パスを確認します。- エントリーポイントが
distに生成される場合は、パッケージをビルドします。 - エントリーポイントが移動した場合は、メタデータを更新します。
- Plugin エントリーポイント を参照してください。
clawhub package validate <path-to-plugin>を再実行します。
package-install-metadata-incomplete
ClawHub はパッケージのインストール方法または更新方法を判断できません。
clawhubSpec、npmSpec、localPathなど、サポートされているインストールソースで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.jsonにopenclaw.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.jsonにopenclawブロックが含まれていることを確認します。 - パッケージがネイティブ 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(...)を保持します。 - ランタイム API と Plugin 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>を再実行します。