Getting Started¶
No install required — run with uvx skillsaw (or install
it for repeated use).
Quick Start¶
# 1. Lint it
uvx skillsaw
# 2. Fix what you can automatically
uvx skillsaw fix
# 3. Accept remaining violations as the baseline
uvx skillsaw baseline
# Done — only new violations will fail from here on
uvx skillsaw # exit 0
Over time, fix violations and re-run uvx skillsaw baseline to shrink the
accepted set. See the Baseline guide for details on how
fingerprinting works and configuration options.
Onboard with AI¶
Skip the manual setup - paste the below into your tool of choice
Or install the plugin globally for regular use (recommended):
Then type /skillsaw-onboard and follow the prompts.
Keep skillsaw updated¶
When a new skillsaw release is out, the skillsaw-update skill walks
your agent through the upgrade: it installs the newest version, reports which
rules are new and what they find in your repository, and bumps pinned
versions in GitHub Actions workflows, Makefile targets, and pre-commit hooks.
Installation¶
docker pull ghcr.io/stbenjam/skillsaw:latest
docker run --user "$(id -u):$(id -g)" -v "$(pwd):/workspace" ghcr.io/stbenjam/skillsaw
The image runs as a non-root user. Mapping your host UID/GID keeps
fix, badge, and baseline able to write to the bind-mounted checkout.
name: Lint
on: [pull_request]
permissions:
contents: read
jobs:
skillsaw:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: stbenjam/skillsaw@v0
with:
strict: true
See the CI Integration guide for PR review comments and advanced usage.
Example Output¶
Linting: /path/to/skills-repo
Errors:
✗ ERROR (agentskill-name) [*] [skills/my-skill/SKILL.md:2]: Name 'My Skill' must contain only lowercase letters, numbers, and hyphens
✗ ERROR (plugin-json-required) [plugins/git/.claude-plugin/plugin.json]: Missing plugin.json
Warnings:
⚠ WARNING (agentskill-description) [skills/helper/SKILL.md:3]: Description exceeds 1024 characters (1087)
⚠ WARNING (claude-plugin-readme) [plugins/utils]: Missing README.md (recommended)
Summary:
Errors: 2
Warnings: 2
[*] 1 violation(s) fixable with `skillsaw fix`
Violations that skillsaw fix can resolve automatically are marked with
[*] (safe fixes) or [?] (suggested fixes, applied with
skillsaw fix --suggest) — see Autofixing.
Exit Codes¶
| Code | Meaning |
|---|---|
0 |
Success (no violations at or above the failure threshold) |
1 |
Failure (errors found; warnings in strict mode; any violation with fail-on: info) |
More Commands¶
# View detected repositories, plugins, skills, and configuration files
skillsaw tree
# Get detailed documentation and configuration options for any rule
skillsaw explain content-weak-language
# Accept existing findings and fail only on new violations
skillsaw baseline
# Generate a grade badge and SVG report card for your README
skillsaw badge --large .
# Generate default config you can customize
skillsaw init
# Verbose output (includes info-level findings)
skillsaw -v
# Strict mode (warnings become errors)
skillsaw --strict
# Output in different formats (text, json, sarif, html, code-climate, gitlab)
skillsaw --format json
skillsaw --format sarif
# Write formatted output directly to a file (format inferred from extension)
skillsaw --output report.sarif
skillsaw --output gitlab:gl-code-quality.json
# Create a diagnostic feedback bundle for bug reports
skillsaw feedback --message "Unexpected finding on custom hook"
See the CLI Reference for all flags and options.
What's Next?¶
- Learn about Repository Types that skillsaw detects
- Browse the Rules Reference to see what skillsaw checks
- Set up Configuration for your project
- Use a Baseline to adopt skillsaw without fixing everything first
- Learn about Autofixing — deterministic fixes and coding agent workflows