certior-skill-audit is a pre-install / pre-load audit for skills. Given a SKILL.md and a parent Guard’s permission set, it proves the skill’s declared capability surface is a subset of the parent before the skill enters a pipeline. If the subset relation does not hold, the audit fails and the binary exits non-zero.
Use it in pre-install hooks, CI, or release pipelines.
Install
The CLI ships with thecertior package:
Audit one skill
0 if the skill’s metadata.certior.capabilities is a subset of the supplied permissions. Exits non-zero otherwise. Use --permission repeatedly to declare each parent capability.
Audit a directory of skills
SKILL.md found. Exits non-zero if any skill fails.
Pin a fingerprint
--expected-fingerprint NAME=SHA256 enforces that the skill’s content hash matches the pinned value. Use this to catch drift between a reviewed version and what is on disk at install time.
Allow undeclared capabilities
--allow-undeclared admits such skills - useful when migrating an existing pipeline incrementally.
JSON output
Programmatic API
The CLI is a thin wrapper overcertior.adapters.openclaw_skill_audit:
What this does not do
The audit is intentionally narrow. It does not scan the skill’s source code for dangerous patterns (regex SAST). That is a complementary tool’s job. Certior verifies that the declared capability surface fits inside the parent’s; tools like Semgrep or Bandit verify that the implementation does not exceed its declaration.See also
- GitHub Action - the same check, gating pull requests.
- Capability model - what “subset” means.