clawhub-skill-lintlisted
Install: claude install-skill sageox/ox
# clawhub-skill-lint
A pre-publish validator for ClawHub skills. Catches publish-time failures
locally — no network round-trip, no `clawhub` CLI required.
## When to use
- **Before** running `clawhub sync` or `clawhub skill publish`.
- **After** editing any `SKILL.md`, `README.md`, or other text file in a
ClawHub skill folder, to confirm no new patterns trigger the scanner.
- **In CI** as a pre-publish gate.
- Whenever the user asks "is this skill clean", "will this pass review",
or "scan before I publish".
## How to invoke
The skill bundles a Python linter at
`.claude/skills/clawhub-skill-lint/scripts/lint.py`. Call it with one or
more paths:
```bash
# Lint a single skill folder
python3 .claude/skills/clawhub-skill-lint/scripts/lint.py claws/openclaw/sageox
# Lint every skill under a parent directory
python3 .claude/skills/clawhub-skill-lint/scripts/lint.py claws/openclaw
# Multiple paths in one invocation
python3 .claude/skills/clawhub-skill-lint/scripts/lint.py claws/openclaw/sageox claws/openclaw/<other-skill>
# Machine-readable JSON output (for CI)
python3 .claude/skills/clawhub-skill-lint/scripts/lint.py --json claws/openclaw
# Treat warnings as errors
python3 .claude/skills/clawhub-skill-lint/scripts/lint.py --strict claws/openclaw
```
The linter discovers skill folders by looking for `SKILL.md` (or `skill.md`).
A path that contains `SKILL.md` directly is treated as a single skill;
any other directory is scanned for child folders.
**Exit codes:**
| Cod