Publish Plugin Packager
Package existing skills into standard, release-ready plugin or bundle formats for ClawHub, Claude, Hermes, AgentSkill, AgentSkills.so, GitHub, and related runtimes.
When to use
- When converting an existing skill into a publishable plugin or bundle
- When generating or fixing manifests such as
package.json, .claude-plugin/plugin.json, or openclaw.plugin.json
- When creating the final runtime-only directory and zip structure for upload or distribution
- When producing a release artifact from an already-optimized source skill
- When shaping the package so it can compete better in public plugin directories
When NOT to use
- When the deliverable is only a
SKILL.md optimization; use clawhub-skill-optimizer
- When the main task is auditing upload risk; use
clawhub-security-auditor
- When the main work is rewriting runtime behavior rather than packaging it
Scope boundary
This skill owns:
- plugin or bundle directory structure
- manifest generation
- release layout and zip shape
- packaging validation
- runtime-only file trimming
- platform-aware breakout packaging rules
This skill does not own:
- primary search-copy optimization
- deep Suspicious/security auditing
- large runtime refactors beyond what packaging requires
Packaging targets
Choose the artifact first:
runtime skill bundle
- for direct GitHub distribution or skill-layer publishing
ClawHub bundle plugin
.claude-plugin/plugin.json plus minimal package.json
ClawHub code plugin
openclaw.plugin.json plus package.json
Claude marketplace plugin
.claude-plugin/plugin.json and marketplace-compatible layout
Hermes runtime bundle
- runtime-only skill directory with Hermes-safe copy and structure
AgentSkill publish bundle
- runtime-only bundle optimized for quality/security review, platform labels, and GitHub trust proof
AgentSkills.so publish bundle
- runtime-only bundle optimized for weekly-download intent, GitHub trust, and reusable catalog-style clarity
Cross-market breakout packaging rules
1. Package for trust, not just parser correctness
Public users install plugins only when the package feels coherent:
- name, description, manifests, and README must describe the same thing
- side effects must be visible
- source repo and shipped files must agree
- only runtime files should ship
2. Package one sharp JTBD per artifact
Breakout plugins usually win because each artifact has a tight job:
- one system
- one operational surface
- one clear result
3. Package a flagship plus a sibling ladder
The best public creators rarely stop at one package. Prefer:
- flagship package
- broad command center or broad plugin surface
- sibling packages
- narrower high-intent actions or adjacent workflows
4. Package proof and install clarity
Strong public packages usually include:
- coherent manifest fields
- runtime-only files
- README proof of what the package actually does
- trustworthy install/setup steps
- clear scope boundaries
Platform-specific packaging heuristics
ClawHub
- package for all three public plugin boards: downloads, installs, and stars
- keep bundle vs code-plugin boundaries crisp
- make
runtimeId, capabilities, and README match exactly
- prefer source-linked, coherent, scanner-friendly bundles
- make detail-page trust surfaces easy to verify:
Security Scan, VirusTotal, OpenClaw verdict, compatibility, and capabilities should all tell the same story
- describe concrete side effects such as config writes, gateway restarts, or remote fetches
Claude
- prefer clean repo-backed layouts and example-driven READMEs
- repo identity should make the lane obvious even before the user reads the whole bundle
- marketplace bundles should read clearly without relying on out-of-bundle files
Hermes
- optimize for category/tag clarity and runtime-only contents
- package one workflow unit per bundle so the section/path choice stays obvious
- avoid noisy install or dev sections in the publish bundle
AgentSkill
- quality score, security score, rating, GitHub stars, and platform coverage become part of the packaging surface
- package so reviewers can see discovery, implementation, structure, and expertise clearly
- think about the owner page and sibling plugin family too, not just one isolated listing
- preserve source linkage and README coherence when GitHub is the trust anchor
AgentSkills.so
- weekly-download competition rewards narrow JTBD packaging and clear repo-backed proof
- package so the detail page can express one reusable workflow, not a fuzzy toolkit
- make security boundaries, side effects, and setup expectations obvious in shipped docs
- strong repo continuity and author-family logic help sibling packages travel further
GitHub
- package as a trustworthy source release, not a local workspace snapshot
- keep changelog/provenance/readme/install paths aligned
Source skill hard conventions
Before packaging, validate that the source skill follows these conventions:
- if the skill already exists in
AIsa-team/agent-skills, diff against that upstream skill first and treat agentskills as the default runtime baseline
- preserve complete runtime behavior unless the task explicitly asks for a behavior change
- published source skills should use
name, description, and canonical metadata.aisa
metadata.aisa should normally contain emoji, requires, primaryEnv, and compatibility
- command examples should use
{baseDir} rather than bootstrap-only variables
- package only runtime-essential files by default
- exclude compare, evaluate, test, sync, migration, and dev utilities unless the user explicitly asks for a developer bundle
- preserve the richer mother skill when the repo uses separate publish bundles
Packaging workflow
- Analyze the source skill and the target platform.
- Determine the artifact type.
- Normalize the shipped file set.
- Generate the correct manifests.
- Preserve core skill semantics inside
skills/<skill-name>/.
- Validate the package layout and manifest fields.
- Create a root-level release zip so required files sit directly at the zip root.
Preserve core skill content
The content within skills/<skill-name>/, especially SKILL.md, should remain semantically intact during packaging. The packager may:
- remove non-runtime helpers from the release bundle
- trim caches, logs, and generated artifacts
- add platform manifests and wrapper files
- add packaging metadata that improves trust and publish clarity
The packager should not:
- silently rewrite the skill's core workflow
- introduce new auth paths
- broaden the runtime surface just to satisfy packaging convenience
Real upload lessons
Recent real uploads were flagged for these reasons:
- External CLI execution inside shipped helpers
- Self-install or cache-sync behavior
- Default writes into user-home data locations
- Version-swapping or repo-mutation helpers
- Shipping non-runtime test/compare/sync utilities
- Aggressive data-retention wording
- Browser cookie, Keychain, or local credential access helpers
- Legacy secret inputs left in runtime config
- Relay targets, upload behavior, or OAuth side effects described too vaguely
- Registry/manifest env requirements drifting away from the shipped skill files
- Public
SKILL.md wording that looks like prompt injection or internal prompt scaffolding
Required packager behavior:
- bundle only runtime-essential files by default
- exclude helper scripts that invoke external CLIs or mutate local installs
- prefer repo-local persistence when persistence is required
- do not include
__pycache__, .pytest_cache, logs, debug artifacts, or non-text binaries in release zips
- exclude deprecated multi-provider auth paths from API-key-only bundles
- apply the same safety trimming to EN and ZH variants
- make relay destinations, uploads, OAuth, and external writes explicit in shipped docs and manifests
- make env requirements match across
SKILL.md, README, manifests, and registry-facing metadata
- keep suspicious scan states distinct:
pending, clean, and suspicious are different package states
Plugin breakout lessons from live ClawHub plugin analysis
As of 2026-04-23, ClawHub plugin pages expose separate downloads / installs / stars boards, but public numeric detail is still weaker than the ranking surface itself. Packaging should therefore emphasize:
- task-first or system-first titles
- relevance across all three public boards
- explicit side effects and setup expectations
- strong verification surfaces such as source-linked provenance
- code-plugin clarity when real runtime behavior exists
- family logic that supports a flagship plugin plus narrower siblings
Public packaging now needs to carry part of the growth strategy.
Additional breakout lessons from 2026-04-20 AgentSkill / AgentSkills.so analysis
AgentSkill
- skill cards, owner portfolios, and plugin families are all part of the packaging surface
- installs, quality score, security score, and GitHub trust should be reinforced by the shipped README, not left to the listing alone
- flagship package plus narrower siblings is more durable than one giant undifferentiated bundle
AgentSkills.so
- weekly-download winners usually package one reusable workflow with a concrete name and clear repo proof
- security posture is part of the public conversion surface, so packaging should reduce ambiguity about persistence, permissions, and side effects
- detail-page trust surfaces should be reinforced in the shipped README, not left implicit
- bundles should feel like clean product surfaces, not snapshots of internal workspace clutter
Layout rules
ClawHub bundle plugin
plugin-name/
├── .claude-plugin/
│ └── plugin.json
├── package.json
├── skills/
│ └── skill-name/
│ ├── SKILL.md
│ └── ...
└── README.md
ClawHub code plugin
plugin-name/
├── openclaw.plugin.json
├── package.json
├── skills/
│ └── skill-name/
│ └── SKILL.md
└── README.md
Claude marketplace plugin
plugin-name/
├── .claude-plugin/
│ └── plugin.json
├── package.json
├── skills/
│ └── skill-name/
│ ├── SKILL.md
│ └── ...
└── README.md
Zip rule
The release zip should place package.json, manifests, skills/, and other required root files directly at the root of the archive, not inside an extra package/ folder.
Example requests
Package this runtime skill as a ClawHub code plugin
Wrap this release skill as a Claude marketplace plugin
Trim this repo down to a publishable AgentSkill or AgentSkills.so bundle and zip it correctly
Generate the manifests for this plugin without changing the skill semantics
1---2name: clawhub-plugin-packager-all3description: Package skills into publishable plugin or bundle formats across ClawHub, Claude, Hermes, AgentSkill, AgentSkills.so, and GitHub. Use when: converting a skill into a release plugin, generating manifests, trimming runtime-only files, and assembling a breakout-ready upload artifact.4---56# Publish Plugin Packager78Package existing skills into standard, release-ready plugin or bundle formats for ClawHub, Claude, Hermes, AgentSkill, AgentSkills.so, GitHub, and related runtimes.910## When to use1112- When converting an existing skill into a publishable plugin or bundle13- When generating or fixing manifests such as `package.json`, `.claude-plugin/plugin.json`, or `openclaw.plugin.json`14- When creating the final runtime-only directory and zip structure for upload or distribution15- When producing a release artifact from an already-optimized source skill16- When shaping the package so it can compete better in public plugin directories1718## When NOT to use1920- When the deliverable is only a `SKILL.md` optimization; use `clawhub-skill-optimizer`21- When the main task is auditing upload risk; use `clawhub-security-auditor`22- When the main work is rewriting runtime behavior rather than packaging it2324## Scope boundary2526This skill owns:2728- plugin or bundle directory structure29- manifest generation30- release layout and zip shape31- packaging validation32- runtime-only file trimming33- platform-aware breakout packaging rules3435This skill does not own:3637- primary search-copy optimization38- deep Suspicious/security auditing39- large runtime refactors beyond what packaging requires4041## Packaging targets4243Choose the artifact first:4445- `runtime skill bundle`46 - for direct GitHub distribution or skill-layer publishing47- `ClawHub bundle plugin`48 - `.claude-plugin/plugin.json` plus minimal `package.json`49- `ClawHub code plugin`50 - `openclaw.plugin.json` plus `package.json`51- `Claude marketplace plugin`52 - `.claude-plugin/plugin.json` and marketplace-compatible layout53- `Hermes runtime bundle`54 - runtime-only skill directory with Hermes-safe copy and structure55- `AgentSkill publish bundle`56 - runtime-only bundle optimized for quality/security review, platform labels, and GitHub trust proof57- `AgentSkills.so publish bundle`58 - runtime-only bundle optimized for weekly-download intent, GitHub trust, and reusable catalog-style clarity5960## Cross-market breakout packaging rules6162### 1. Package for trust, not just parser correctness6364Public users install plugins only when the package feels coherent:6566- name, description, manifests, and README must describe the same thing67- side effects must be visible68- source repo and shipped files must agree69- only runtime files should ship7071### 2. Package one sharp JTBD per artifact7273Breakout plugins usually win because each artifact has a tight job:7475- one system76- one operational surface77- one clear result7879### 3. Package a flagship plus a sibling ladder8081The best public creators rarely stop at one package. Prefer:8283- flagship package84 - broad command center or broad plugin surface85- sibling packages86 - narrower high-intent actions or adjacent workflows8788### 4. Package proof and install clarity8990Strong public packages usually include:9192- coherent manifest fields93- runtime-only files94- README proof of what the package actually does95- trustworthy install/setup steps96- clear scope boundaries9798## Platform-specific packaging heuristics99100### ClawHub101102- package for all three public plugin boards: downloads, installs, and stars103- keep bundle vs code-plugin boundaries crisp104- make `runtimeId`, capabilities, and README match exactly105- prefer source-linked, coherent, scanner-friendly bundles106- make detail-page trust surfaces easy to verify: `Security Scan`, `VirusTotal`, `OpenClaw verdict`, compatibility, and capabilities should all tell the same story107- describe concrete side effects such as config writes, gateway restarts, or remote fetches108109### Claude110111- prefer clean repo-backed layouts and example-driven READMEs112- repo identity should make the lane obvious even before the user reads the whole bundle113- marketplace bundles should read clearly without relying on out-of-bundle files114115### Hermes116117- optimize for category/tag clarity and runtime-only contents118- package one workflow unit per bundle so the section/path choice stays obvious119- avoid noisy install or dev sections in the publish bundle120121### AgentSkill122123- quality score, security score, rating, GitHub stars, and platform coverage become part of the packaging surface124- package so reviewers can see discovery, implementation, structure, and expertise clearly125- think about the owner page and sibling plugin family too, not just one isolated listing126- preserve source linkage and README coherence when GitHub is the trust anchor127128### AgentSkills.so129130- weekly-download competition rewards narrow JTBD packaging and clear repo-backed proof131- package so the detail page can express one reusable workflow, not a fuzzy toolkit132- make security boundaries, side effects, and setup expectations obvious in shipped docs133- strong repo continuity and author-family logic help sibling packages travel further134135### GitHub136137- package as a trustworthy source release, not a local workspace snapshot138- keep changelog/provenance/readme/install paths aligned139140## Source skill hard conventions141142Before packaging, validate that the source skill follows these conventions:143144- if the skill already exists in `AIsa-team/agent-skills`, diff against that upstream skill first and treat `agentskills` as the default runtime baseline145- preserve complete runtime behavior unless the task explicitly asks for a behavior change146- published source skills should use `name`, `description`, and canonical `metadata.aisa`147- `metadata.aisa` should normally contain `emoji`, `requires`, `primaryEnv`, and `compatibility`148- command examples should use `{baseDir}` rather than bootstrap-only variables149- package only runtime-essential files by default150- exclude compare, evaluate, test, sync, migration, and dev utilities unless the user explicitly asks for a developer bundle151- preserve the richer mother skill when the repo uses separate publish bundles152153## Packaging workflow1541551. Analyze the source skill and the target platform.1562. Determine the artifact type.1573. Normalize the shipped file set.1584. Generate the correct manifests.1595. Preserve core skill semantics inside `skills/<skill-name>/`.1606. Validate the package layout and manifest fields.1617. Create a root-level release zip so required files sit directly at the zip root.162163## Preserve core skill content164165The content within `skills/<skill-name>/`, especially `SKILL.md`, should remain semantically intact during packaging. The packager may:166167- remove non-runtime helpers from the release bundle168- trim caches, logs, and generated artifacts169- add platform manifests and wrapper files170- add packaging metadata that improves trust and publish clarity171172The packager should not:173174- silently rewrite the skill's core workflow175- introduce new auth paths176- broaden the runtime surface just to satisfy packaging convenience177178## Real upload lessons179180Recent real uploads were flagged for these reasons:1811821. External CLI execution inside shipped helpers1832. Self-install or cache-sync behavior1843. Default writes into user-home data locations1854. Version-swapping or repo-mutation helpers1865. Shipping non-runtime test/compare/sync utilities1876. Aggressive data-retention wording1887. Browser cookie, Keychain, or local credential access helpers1898. Legacy secret inputs left in runtime config1909. Relay targets, upload behavior, or OAuth side effects described too vaguely19110. Registry/manifest env requirements drifting away from the shipped skill files19211. Public `SKILL.md` wording that looks like prompt injection or internal prompt scaffolding193194Required packager behavior:195196- bundle only runtime-essential files by default197- exclude helper scripts that invoke external CLIs or mutate local installs198- prefer repo-local persistence when persistence is required199- do not include `__pycache__`, `.pytest_cache`, logs, debug artifacts, or non-text binaries in release zips200- exclude deprecated multi-provider auth paths from API-key-only bundles201- apply the same safety trimming to EN and ZH variants202- make relay destinations, uploads, OAuth, and external writes explicit in shipped docs and manifests203- make env requirements match across `SKILL.md`, README, manifests, and registry-facing metadata204- keep suspicious scan states distinct: `pending`, `clean`, and `suspicious` are different package states205206## Plugin breakout lessons from live ClawHub plugin analysis207208As of 2026-04-23, ClawHub plugin pages expose separate downloads / installs / stars boards, but public numeric detail is still weaker than the ranking surface itself. Packaging should therefore emphasize:209210- task-first or system-first titles211- relevance across all three public boards212- explicit side effects and setup expectations213- strong verification surfaces such as source-linked provenance214- code-plugin clarity when real runtime behavior exists215- family logic that supports a flagship plugin plus narrower siblings216217Public packaging now needs to carry part of the growth strategy.218219## Additional breakout lessons from 2026-04-20 AgentSkill / AgentSkills.so analysis220221### AgentSkill222223- skill cards, owner portfolios, and plugin families are all part of the packaging surface224- installs, quality score, security score, and GitHub trust should be reinforced by the shipped README, not left to the listing alone225- flagship package plus narrower siblings is more durable than one giant undifferentiated bundle226227### AgentSkills.so228229- weekly-download winners usually package one reusable workflow with a concrete name and clear repo proof230- security posture is part of the public conversion surface, so packaging should reduce ambiguity about persistence, permissions, and side effects231- detail-page trust surfaces should be reinforced in the shipped README, not left implicit232- bundles should feel like clean product surfaces, not snapshots of internal workspace clutter233234## Layout rules235236### ClawHub bundle plugin237238```text239plugin-name/240├── .claude-plugin/241│ └── plugin.json242├── package.json243├── skills/244│ └── skill-name/245│ ├── SKILL.md246│ └── ...247└── README.md248```249250### ClawHub code plugin251252```text253plugin-name/254├── openclaw.plugin.json255├── package.json256├── skills/257│ └── skill-name/258│ └── SKILL.md259└── README.md260```261262### Claude marketplace plugin263264```text265plugin-name/266├── .claude-plugin/267│ └── plugin.json268├── package.json269├── skills/270│ └── skill-name/271│ ├── SKILL.md272│ └── ...273└── README.md274```275276## Zip rule277278The release zip should place `package.json`, manifests, `skills/`, and other required root files directly at the root of the archive, not inside an extra `package/` folder.279280## Example requests281282- `Package this runtime skill as a ClawHub code plugin`283- `Wrap this release skill as a Claude marketplace plugin`284- `Trim this repo down to a publishable AgentSkill or AgentSkills.so bundle and zip it correctly`285- `Generate the manifests for this plugin without changing the skill semantics`