# openclaw-package-valid OpenClaw package metadata must declare valid extension entries | | | |---|---| | **Severity** | error (disabled) | | **Autofix** | - | | **Since** | v0.21.0 | | **Repo Types** | openclaw-plugin | | **Category** | [OpenClaw](openclaw.md) | ## Why OpenClaw reads runtime entrypoint metadata from `package.json`, separately from its native manifest. A non-object `openclaw` or non-array `openclaw.extensions` rejects entrypoint discovery. Every array item must be a non-empty string. Missing or null `openclaw` metadata or extensions permit conventional index entrypoint fallback. When explicit extensions are declared, a nonempty `openclaw.runtimeExtensions` array must contain non-empty strings and have the same length as `openclaw.extensions`. Entries correspond by index. An empty array or a non-array value means no explicit runtime mapping, matching the native loader. Runtime metadata is ignored without explicit source entries. Invalid mappings are reported here; runtime path containment and optional existence checks belong to `openclaw-resources`. ## Activation Opt-in with `--rule openclaw-package-valid` or `enabled: true` while native plugin coverage expands. ## How to fix Use an object for `openclaw`, and an array of non-empty path strings for `extensions` when declaring explicit entrypoints. `package.json` uses JSON, while the native manifest also accepts JSON5. Keep package metadata within the native loader’s 16 MiB limit. A package.json is not mandatory for a native plugin with a conventional index entrypoint. No autofix is provided. See [manifest sources](openclaw-manifest-valid.md) for the pinned loader source. Runtime file existence is an optional check in [openclaw-resources](openclaw-resources.md), because source checkouts often have not built their distribution files. ## Configuration ```yaml rules: openclaw-package-valid: enabled: false # true | false | auto severity: error ``` *Run `skillsaw explain openclaw-package-valid` to see this documentation and the rule's effective configuration in your terminal.*