Install
openclaw skills install clawhub-plugin-packagerGenerate, repair, or audit publish-ready native OpenClaw/ClawHub plugin packages from rough, partial, or inconsistent requirements while keeping the plugin z...
openclaw skills install clawhub-plugin-packagerUse this skill when the user wants to create, repair, review, rename, or repackage a native OpenClaw / ClawHub plugin package.
This skill is plugin-native by design. It is not a generic skill packager with plugin wording layered on top.
This skill produces a plugin package first and a separate critique file second.
The plugin package is the main deliverable.
The critique file is the review/support layer.
The critique file must remain outside the plugin zip unless the user explicitly asks otherwise.
Unless the user explicitly requests a split identity, keep one aligned identity across plugin surfaces:
Prefer one clean identity over clever naming splits.
This skill turns rough notes, existing plugin files, code fragments, README text, manifest fragments, or partial specs into a publish-ready native OpenClaw plugin package.
It is designed to:
Use a low-friction handoff style.
When the user provides material:
Prefer statements over questions.
If something is missing but inferable:
If something is risky, ambiguous, or likely to affect publishability:
Do not stop at “more info needed” when a conservative, publishable package can still be built.
native-tool-pluginDefault mode.
Use when the request is incomplete, generic, or simply asks for “a plugin” without a more specific runtime role.
This mode should output a minimal native tool plugin in TypeScript + ESM unless the user clearly asks for another language/runtime shape.
native-provider-pluginUse when the plugin is meant to add or wrap a provider surface such as model, speech, or service-provider behavior.
This mode must reason about:
native-channel-pluginUse when the plugin adds a channel, transport, ingress, or egress surface.
This mode must reason about:
plugin-audit-onlyUse when the user wants review, validation, or packaging advice without generation.
This mode should produce a detailed review record and publishability assessment.
Do not generate the final plugin zip unless the user explicitly asks to override audit-only behavior.
repair-existing-pluginUse when the user provides an existing plugin folder, zip, manifest, package.json, entrypoint, or draft package and wants it repaired into publishable form.
Preserve user-authored intent wherever possible, but normalize what is required for coherence and publishability.
Choose a mode using this priority order:
native-tool-pluginIf ambiguity remains, do not block.
Infer the most conservative valid mode and continue.
That conservative fallback is always native-tool-plugin.
Unless the request clearly specifies otherwise:
native-tool-plugin when the runtime role is underspecifiedEvery non-audit generation run must produce a plugin package that includes, at minimum:
package.jsonopenclaw.plugin.jsonREADME.mdAdd additional files only when the selected mode genuinely requires them, such as:
tsconfig.jsonsrc/Always emit a valid plugin manifest with:
configSchemaIf no real configuration is needed, emit an empty or minimal schema instead of omitting it.
Always include the compatibility/build metadata required for native plugin publication.
The README must state:
Always produce exactly two user-facing deliverables for plugin-generation jobs.
A zip-ready native OpenClaw plugin folder containing only files that directly belong to the plugin release artifact.
Do not include inside the plugin zip:
The plugin zip should look like it was created for the plugin itself, not for the chat session that created it.
A separate plain-text critique file outside the plugin zip.
Preferred extension:
.txtThis file must document:
This skill package is itself a standalone ClawHub skill release artifact.
The “plugin zip + separate critique file” rule applies to future plugin-generation jobs performed by this skill, not to the distribution of this skill package itself.
Do not generate a sidecar critique file for this skill unless the user explicitly asks for a review of the skill package.
Accept any of the following as valid input:
package.json fragmentsClassify source material internally as:
Reflect those classifications in the critique file.
Be inference-forward, but bounded.
Avoid fabricating highly specific runtime features that the request does not justify.
When uncertain, prefer:
When a detail is genuinely unknown, choose the narrowest valid implementation and record the assumption.
native-tool-pluginGenerate the smallest useful native plugin.
Default target:
If the request does not clearly demand multiple tools, generate one core tool only.
native-provider-pluginGenerate a provider-oriented package that clearly expresses:
If provider details are missing, use placeholder-safe env variables and explain them in the README and critique file.
native-channel-pluginGenerate the runtime shape appropriate for channel plugins, including setup/activation entry behavior when needed.
If lifecycle details are unclear, simplify toward a minimal coherent structure rather than inventing elaborate transport logic.
repair-existing-pluginPreserve user-authored material wherever possible, but normalize as needed:
Document all material changes in the critique file.
plugin-audit-onlyProduce a detailed critique and publishability assessment.
Do not build the final zip unless explicitly asked.
Every generated plugin must explicitly answer:
Do not leave these as implied.
Never include live credentials, secrets, or production tokens.
When secrets may be needed:
.env.example-style guidance only when it materially helps the plugin packageBefore final delivery, run an internal review pass against the generated result.
Check:
Determine one of these outcomes:
publish-readypublishable with cautionsneeds human review before publishInclude that assessment in the critique file.
The critique file must include these sections:
Do not turn this into generic commentary.
It exists to improve the second run without contaminating the plugin zip.
Do not treat these as always required for v1.1 plugin generation:
Those belong in later passes or only when explicitly requested.
When in doubt, generate the smallest publishable native plugin package that honestly reflects the request, and document all inferences in the separate critique file.