title: Plugin package metadata contracts scenario: id: plugin-package-metadata-contracts surface: plugins category: plugins.authoring-and-packaging-plugins coverage: primary: - plugins.package-metadata - plugins.validation-feedback objective: Verify package.json exposes plugin discovery and release metadata and rejects malformed or inconsistent entrypoint declarations. successCriteria: - The openclaw package block exposes source, runtime, setup, compatibility, and install metadata. - Malformed openclaw and extensions fields fail with actionable field-specific errors. - Runtime extension counts must match source extension counts. - runtimeSetupEntry requires a matching setupEntry. docsRefs: - docs/plugins/building-plugins.md - docs/plugins/manifest.md - docs/plugins/reference.md codeRefs: - src/plugins/package-manifest.ts - src/plugins/package-entry-resolution.ts - src/plugins/contracts/package-manifest.contract.test.ts execution: kind: vitest path: src/plugins/contracts/package-manifest.contract.test.ts summary: Run plugin package metadata discovery and fail-fast entrypoint validation contracts.