skillsawKeep your skills sharp. A linter for the files that steer AI coding agents. |
|
Agent instructions behave like code, but most teams still review them like prose. skillsaw gives them a linter. It finds the structural errors and content problems that make agents less reliable: vague language, contradictions, buried priorities, repeated directives, hidden content, broken references, unsafe configuration, and more.
It understands Agent Skills, Claude Code plugins, CLAUDE.md, AGENTS.md, GEMINI.md, Cursor, Copilot, Kiro, hooks, agent configuration, and evals. Safe structural fixes can be applied automatically; everything else comes with precise, agent-friendly guidance.
Get started | Browse the rules | Read the documentation
See it work
Watch an AI agent grade, fix, and configure a repository from scratch.
Try it
Paste this into your coding agent to onboard skillsaw now:
Read and follow the instructions at
https://raw.githubusercontent.com/stbenjam/skillsaw/refs/heads/main/skills/skillsaw-onboard/SKILL.md
to onboard this repo to skillsaw.
Or run it yourself. No installation is required with
uvx:
uvx skillsaw tree # See what skillsaw detects
uvx skillsaw # Lint the current repository
uvx skillsaw fix # Apply safe, deterministic fixes
uvx skillsaw baseline # Accept existing findings and fail only on new ones
What it catches
- Instruction quality: weak language, contradictions, tautologies, attention dead zones, missing stop conditions, and bloated context.
- Structure and compatibility: invalid frontmatter, manifests, commands, skills, agents, hooks, marketplaces, and tool-specific configuration.
- Security risks: embedded secrets, invisible Unicode, encoded payloads, hidden instructions, dangerous hooks, and prohibited MCP servers.
- Repository drift: broken references, unreferenced files, inconsistent terminology, stale baselines, and context-budget regressions.
skillsaw detects the repository type automatically and can lint multiple types in the same project. See supported repository types and the complete rule reference for details.
Built for real workflows
skillsaw works locally, in CI, and inside coding-agent workflows. It provides line-level findings, explanations for every rule, deterministic autofixes, baselines for gradual adoption, GitHub and GitLab integration, and text, JSON, SARIF, HTML, and Code Climate output. Rules are configurable, and projects can add local rules or install rule plugins.
| Goal | Documentation |
|---|---|
| Install and run skillsaw | Getting Started |
| Tune rules and exclusions | Configuration |
| Adopt it without fixing everything at once | Baselines |
| Add checks to pull requests | CI Integration |
| Understand and apply fixes | Autofixing |
| Create project-specific checks | Custom Rules |
| Publish reusable rule packages | Rule Plugins |
| Review the security model | Supply Chain Protection |
| Look up commands and flags | CLI Reference |
Measure the result
Every run produces a letter grade based on weighted violation density. The same data can be rendered as a self-contained report card for a README or project dashboard.
skillsaw's own report card, generated with skillsaw badge --large.
Learn how to generate a grade badge and report card for your project.
Contributing
Contributions are welcome. See CONTRIBUTING.md for the project guidelines and DEVELOPMENT.md for the local setup.
Questions and bug reports belong in GitHub Issues. skillsaw is licensed under the Apache License 2.0.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skillsaw-0.17.0.tar.gz.
File metadata
- Download URL: skillsaw-0.17.0.tar.gz
- Upload date:
- Size: 526.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0dd217ae39c3f66f76d4128e0f8cbde5ac68a17aee07d974b48f1b54e7be09a
|
|
| MD5 |
2266ec09bf0e1f6d6546d78f6b0c28e2
|
|
| BLAKE2b-256 |
a515418fdd40632127f504f800abd3a6edc7c79475e30e44ca4edcf7aadad131
|
Provenance
The following attestation bundles were made for skillsaw-0.17.0.tar.gz:
Publisher:
release.yml on stbenjam/skillsaw
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skillsaw-0.17.0.tar.gz -
Subject digest:
d0dd217ae39c3f66f76d4128e0f8cbde5ac68a17aee07d974b48f1b54e7be09a - Sigstore transparency entry: 2212784395
- Sigstore integration time:
-
Permalink:
stbenjam/skillsaw@f9819d2de4d69100f8544175d4045f34f0282b66 -
Branch / Tag:
refs/tags/v0.17.0 - Owner: https://github.com/stbenjam
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f9819d2de4d69100f8544175d4045f34f0282b66 -
Trigger Event:
release
-
Statement type:
File details
Details for the file skillsaw-0.17.0-py3-none-any.whl.
File metadata
- Download URL: skillsaw-0.17.0-py3-none-any.whl
- Upload date:
- Size: 387.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5c28b80723a80181ff775b51dd62a521c2c239387cacb2c3766b058c1afaf41
|
|
| MD5 |
e4166a4a08c45629be2f6a7069ef8fcc
|
|
| BLAKE2b-256 |
6c72e3e8b246778d2edbd9fc2fcbfe2c2e71426cd5a2cef6b11d18faec2d7395
|
Provenance
The following attestation bundles were made for skillsaw-0.17.0-py3-none-any.whl:
Publisher:
release.yml on stbenjam/skillsaw
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skillsaw-0.17.0-py3-none-any.whl -
Subject digest:
e5c28b80723a80181ff775b51dd62a521c2c239387cacb2c3766b058c1afaf41 - Sigstore transparency entry: 2212784517
- Sigstore integration time:
-
Permalink:
stbenjam/skillsaw@f9819d2de4d69100f8544175d4045f34f0282b66 -
Branch / Tag:
refs/tags/v0.17.0 - Owner: https://github.com/stbenjam
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f9819d2de4d69100f8544175d4045f34f0282b66 -
Trigger Event:
release
-
Statement type: