CI and pre-commit
skillhash verify exits with code 1 when an installed skill differs from skills.lock, when the manifest and lock disagree, or when a locked skill grades below min_grade. That is all CI needs.
GitHub Actions
name: skills
on: [pull_request, push]
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
- run: uvx skillhash verify
# Optional: block new high-severity findings anywhere in the repo
- run: uvx skillhash scan .claude/skills --fail-on highGitLab CI
skills:
image: ghcr.io/astral-sh/uv:python3.12-bookworm-slim
script:
- uvx skillhash verifypre-commit
# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: skillhash-verify
name: skillhash verify
entry: uvx skillhash verify
language: system
pass_filenames: falsePrivate registry in CI
Create a token under Dashboard, Tokens and store it as the SKILLHASH_TOKEN secret. The CLI reads it automatically for registry: sources.