Generic skill-quality auditor for any agent skill (Claude, OpenClaw, Cursor, etc.). Runs a 7-dimension static analysis (D1 process closure & idempotency, D2 tool/command conventions, D3 portability & defense, D4 skill usability, D5 security & op risk, D6 code & doc quality, D7 dependency & footprint) with explicit ERR / WARN severity, 120-point scoring (pass line 90 + zero ERR), and an opt-in `--fix` workflow that always backs up first. Two depths: L1 static (~2 min) and L2 dryRun (~5 min, read-only hub + reachability checks). Strict red lines — read-only by default, never executes the audited skill's writes. Use when the user asks to "audit a skill", "check skill quality", "is this skill ready to ship", "lint my skill", or runs this tool by name. Triggers also: "审计这个 Skill"、"检查 Skill 质量"、"Skill 能上线吗"、 "skill-deep-audit"、"审一下 xxx skill"。
文档
Skill Release Audit
试用Pre-publish quality and safety auditor for AI agent skills (SKILL.md + scripts/ + references/ format used by Claude Code, Cursor, OpenAI Codex, GitHub Copilo...
它能做什么
Pre-publish quality and safety auditor for AI agent skills (SKILL.md + scripts/ + references/ format used by Claude Code, Cursor, OpenAI Codex, GitHub Copilot, OpenClaw, ClawHub, and compatible SkillHub registries). Six static-check modules (no LLM, no network by default): (1) syntax and logic correctness, (2) feature completeness, (3) edge-case and error handling, (4) data safety (detects files written inside the skill dir that would be lost on update), (5) dependency declaration vs code, (6) SKILL.md documentation standards. Per-registry rule profiles via `--target`. Pure reporter — never edits your files, never publishes. Use when publishing a skill, modifying an existing skill, or diagnosing why a skill behaves unexpectedly — run it as the last machine-checkable gate before release. Trigger phrases: "skill release audit", "audit before publishing", "pre-release check", "release gate", "skill safety check", "发版前检查", "skill 发布检查", "审查这个 skill 能不能发版".
技能文档
skill-release-audit
- Version: 1.0.4
- License: MIT
- Author: Evan Song · github.com/Songhonglei
- Repository: https://github.com/Songhonglei/build-better-skills
- Part of:
build-better-skillssuite — see Stages for the lifecycle map.
A six-module static inspector that catches mechanical problems machines can
verify — broken Python syntax, undeclared env vars, files written inside the
skill dir that would be lost on update, missing README/LICENSE for GitHub
targets, mismatched docs and scripts. Pairs with glic-check
which does cognitive UGLIC review; together they cover both layers
(see Part of build-better-skills).
Prints a structured ✅/⚠️/❌ report per module with actionable fixes. Does
not auto-fix. All fixes require user confirmation.
Agent Behavior Rules (must-read)
This skill is an Auditor, not a Fixer.
After running the check, the agent must follow these rules strictly:
- Show the full report first — every module result, every warning / error with its specific description.
- Suggest fixes per finding, but only as suggestions, not actions.
- Wait for explicit user confirmation before touching any file.
- Never modify SKILL.md, scripts/, references/, or any other file without confirmation.
- Never delete files, even ones that look like leftovers — always ask first.
Correct output template:
📋 Check report:
[full output of healthcheck.py]
---
Issues found. Please confirm what to do:
✅ Can be ignored (false positives):
- Module 1: cache.json path warning — SKILL.md mentions it as descriptive text,
not a file reference.
⚠️ Suggested fixes (awaiting your confirmation):
1. Module 3: auto_update.py _log() missing try/except — suggest wrapping.
2. Module 2: guide.py not listed in SKILL.md's module table — suggest adding.
Tell me which to fix and which to ignore. I'll act after you confirm.
Usage
# Full check — report only, does NOT modify your environment (default)
python scripts/healthcheck.py
# Opt in to auto pip-install missing Python deps (off by default)
python scripts/healthcheck.py --auto-install
# Tune per-package install timeout (only with --auto-install)
python scripts/healthcheck.py --auto-install --install-timeout 120
# Validate against a specific publishing target (tunes checks, does NOT publish)
python scripts/healthcheck.py --target clawhub
# Report output language: zh or en (default: auto-detected from $LC_ALL / $LANG)
python scripts/healthcheck.py --lang en
# Run specific modules only (e.g. deps + docs)
python scripts/healthcheck.py --modules 5,6
Default behavior is report only, do not install — an auditor should not mutate the user's environment. Missing required deps are reported as ERROR; with
--auto-install, install failures are reported as WARN (usually network/registry issues, not skill bugs).
Publishing target (--target)
Different registries have different rules. --target tunes which checks fire
and at what severity — it does not publish.
| target | Use case | Notes |
|---|---|---|
generic (default) | Cross-registry minimum | Loosest, smallest common set |
clawhub | clawhub.com | name+description required, strict slug, 50MB cap, declaration-vs-code consistency |
anthropic | Anthropic-compatible base spec | name≤64 / description≤1024, body recommended <5k tokens |
github | Open-sourcing to GitHub | Requires README + LICENSE |
skillhub | Private SkillHub (vendor-compatibility layers) | Same as clawhub but version required (WARN) |
Profiles live in profiles/ as JSON; add your own by dropping a new
.json there. See references/hub-specs.md
for per-registry specifications encoded by these profiles.
Report language
Default: auto-detected from $LC_ALL / $LC_MESSAGES / $LANG. Falls back to
zh (legacy default). Currently supported: zh / en.
- CLI:
--lang zh/--lang en - Env:
SKILL_AUDIT_LANG=en(lower priority than--lang)
All user-facing text is centralized in scripts/i18n.py as a bilingual
key-table — add a new check by adding one zh/en entry; do not hardcode
strings in module files.
Exit codes: 0 = no errors (may have warnings), 1 = errors found,
2 = invalid input.
The six modules
| Module | Checks | Script |
|---|---|---|
| 1. Syntax & logic | Python AST parse, Bash -n syntax check, internal reference paths, leftover TODO/FIXME | scripts/check_logic.py |
| 2. Feature coverage | scripts / references mentioned in SKILL.md, stub-file detection | scripts/check_features.py |
| 3. Edge cases | try/except coverage, HTTP timeout, response-status handling, Bash set -e | scripts/check_edges.py |
| 4. Data safety | Files written inside the skill dir (lost on update) | scripts/check_data_safety.py |
| 5. Dependencies | Python / Node / Bash deps, optional --auto-install, declaration-vs-code env check | scripts/check_deps.py |
| 6. Documentation | description quality, frontmatter discipline, slug rules, target-specific required files (README / LICENSE) | scripts/check_docs.py |
Data safety hint
Skill directories are overwritten on update. All persistent data must live outside the skill dir. The auditor probes the runtime environment (OpenClaw / Claude Code / Codex / plain checkout) and suggests a portable path:
from pathlib import Path
DATA_DIR = Path.home() / ".skill-data" / "" # example, auto-tuned
See references/safe-paths.md for the full resolution order.
Declaration vs code env check
Mirrors registry-side security analysis: if your code reads an env var
(os.environ["X"], os.getenv(...), process.env.X) that isn't declared in
frontmatter under metadata.openclaw.requires.env / primaryEnv / envVars,
the auditor flags a metadata mismatch (severity is profile-driven). This catches
the most common cause of post-publish runtime failures.
Dependency declaration convention
In SKILL.md body, add a dependency section:
## Dependencies
Auto-installed on first use: requests, pyyaml
System commands (install manually): jq (`brew install jq`)
See references/dep-patterns.md.
Dependencies
Core uses Python 3.8+ standard library only — no external installs needed.
Optional enhancement: pyyaml (auto-detected). With PyYAML, frontmatter
parsing handles multi-line / list / nested fields strictly. Without it, a
tolerant built-in parser handles inline JSON values (e.g.
metadata: {"key": "value"}) so the same checks still work — no functionality
loss.
Part of build-better-skills
This skill belongs to the build-better-skills suite.
For the full lifecycle map (Install → Audit → Release → Testing → Sediment),
all sibling skills, and their current status, see the
Stages table on the suite repo home — kept as the single source
of truth (this file does not duplicate it).
相关技能
Audit an upstream agent skill, SKILL.md, skill repository, or lifecycle workflow before adapting it for ClawHub, Codex, Claude Code, or a public Skool skill...
Automated security audit for AI agent skills. Use BEFORE installing any skill from ClawHub, GitHub, or other sources. Scans SKILL.md + all files for 30+ red...
Audit another Codex skill for structural compliance, trigger quality, instruction clarity, reuse of scripts or references, and overall maintainability. Use w...
Use when preparing a Skill folder for public release to SkillHub, ClawHub, or another agent-skill marketplace, especially before publishing third-party insta...
Audit-first pipeline to publish an OpenClaw skill to ClawHub without leaking personal data, credentials, or model-specific references. Five stages — Sanitize, Transform, Verify, Publish, Install-check — with explicit user approval before every irreversible step. Use this when the user wants to publish a skill to ClawHub, sanitize a skill before publishing, run a pre-publish PII/secret audit, or follow the ClawHub publish workflow. Trigger phrases: 'publish to ClawHub', 'publish my skill', 'sanitize before publish', 'pre-publish checklist', 'clawhub publish command', 'upload a skill to clawhub'.