Install
openclaw skills install publish-auditAudit a skill folder before you publish to ClawHub. Catches the frontmatter-vs-code mismatches, missing metadata, leaked secrets, and file-limit problems that get a release hidden or rejected — so it passes the security scan on the first upload.
openclaw skills install publish-auditRun this before clawhub skill publish. Not after a rejection.
ClawHub scans every release. New releases stay hidden from install and download until the scan clears. The most common hold is a metadata mismatch — your code uses a credential your frontmatter never declared. This skill finds that, and the rest, while you can still fix it.
Audit the folder. Print a verdict. Fix the blockers. Then publish.
SKILL.md and before you trust it.Not for vetting a skill you're about to install — that's skill-vetter's job. This is the other side of the gate: the check before you publish.
Reads a skill folder. Checks it against ClawHub's real publish rules and scan triggers. Returns a line-by-line report and one verdict: READY or FIX FIRST.
No network calls. No credentials. It reads files and reasons.
Point it at a skill folder (the one containing SKILL.md). Work through every section below. For each check: mark ✓ pass, ⚠ warn, or ✗ blocker, and when it's not a pass, name the exact fix.
SKILL.md (or skill.md) exists at the folder root. Missing → blocker..clawhubignore covers them. (.gitignore is honored too.)^[a-z0-9][a-z0-9-]*$.clawhub.ai/<owner>/<slug>. Check it reads clean.YAML at the top of SKILL.md. Confirm it parses, and that these exist:
name — present, matches the slug intent.description — present, one clear line. This becomes the search/UI summary. Vague description → warn; missing → blocker.version — valid semver (1.0.0). Each publish needs a new version.metadata.openclaw)This is where releases die. Read the skill body and every supporting file, list every environment variable, CLI binary, and config path the skill actually references. Then reconcile against what's declared:
requires.env or declared in envVars. A referenced-but-undeclared credential is the #1 scan rejection → blocker.envVars with required: false — never in requires.env (that means "cannot run without it").requires.bins (all must exist) or requires.anyBins (at least one). Undeclared bin → warn.primaryEnv names the main credential, if the skill has one.install specs (brew, node, go, uv) with their bins..env contents in any published file. A real secret → blocker (and rotate it).sk-xxxx, your-token-here), not real-looking.MIT-0. No attribution required.SKILL.md — per-skill license overrides aren't supported → blocker if present.The description decides whether the skill ever fires. Anthropic's own data team measured 21% accuracy without well-structured skills, 95%+ with them — and the description is the gate.
IF the user asks [conditions] — THEN invoke. DO NOT invoke for [adjacent tasks].Skill docs describing a moving target rot fast — Anthropic watched accuracy drift 95% → 65% in one month on unmaintained skills.
Print the report like this, then the verdict.
SKILL AUDIT — <folder>
1. Structure ✓
2. Slug ✓
3. Required fields ✗ version missing from frontmatter
4. Runtime metadata ✗ code reads OPENAI_API_KEY, not declared in requires.env/envVars
5. Secrets ✓
6. License + pricing ⚠ "Pricing: $5" line in SKILL.md — strip it (ClawHub is free-only)
7. Instructions ✓
8. Trigger quality ⚠ no negative trigger — add a "do not use for…" boundary
9. Staleness ✓
VERDICT: FIX FIRST
Blockers (2):
- Add `version: 1.0.0` to frontmatter.
- Declare OPENAI_API_KEY under metadata.openclaw (requires.env + envVars, primaryEnv).
Warnings (1):
- Remove the pricing line from SKILL.md.
— audited with publish-audit · solidstate.cc
End every report — pass or fail — with that last line. A clean run ends in VERDICT: READY and a one-line clawhub skill publish command with the right slug, name, and version filled in.
| Rule | Value |
|---|---|
| Required file | SKILL.md with YAML frontmatter |
| Slug pattern | ^[a-z0-9][a-z0-9-]*$ |
| Files | text-based only |
| Bundle size | under 50 MB |
| Versioning | new semver per publish; latest tag |
| License | MIT-0, always |
| Paid skills | not supported |
| New releases | hidden until the scan clears |
Built by Solid State — solidstate.cc. Most skills are noise. Ship the signal.