Skip to main content
skillsaw logo

skillsaw

Keep your skills sharp.

A linter for the files that steer AI coding agents.

PyPI version PyPI Downloads Tests codecov License

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, Agent Plugins v1, Claude Code plugins, OpenAI Codex plugins and marketplaces, 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.

Watch the skillsaw onboarding demo

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.

The description-routing rule checks when-to-use phrasing and descriptions that only repeat a skill, agent, or command name. Both checks can be configured independently; see the rule reference.

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
Convert plugins to Agent Plugins v1 with skillsaw port Porting to Agent Plugins
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 report card

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

skillsaw-0.18.0.tar.gz (662.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skillsaw-0.18.0-py3-none-any.whl (521.1 kB view details)

Uploaded Python 3

File details

Details for the file skillsaw-0.18.0.tar.gz.

File metadata

  • Download URL: skillsaw-0.18.0.tar.gz
  • Upload date:
  • Size: 662.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for skillsaw-0.18.0.tar.gz
Algorithm Hash digest
SHA256 a4376e6b20b24f1bce4583fcbda0bc0b0bdf7165b4cbaba4a177d58b7ca3ce56
MD5 398bdfca81c3fa8887704b45b2bc8e7a
BLAKE2b-256 edbdb6937921b277150188eea2fc431c948dc546e44a80ba7acc7b037dbe55b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillsaw-0.18.0.tar.gz:

Publisher: release.yml on stbenjam/skillsaw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file skillsaw-0.18.0-py3-none-any.whl.

File metadata

  • Download URL: skillsaw-0.18.0-py3-none-any.whl
  • Upload date:
  • Size: 521.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for skillsaw-0.18.0-py3-none-any.whl
Algorithm Hash digest
SHA256 52b715f256cf1c7c2fdd14f01498f42927307916af48cccb209af616f85e00eb
MD5 04a0b16fd358ed6f88960d2d5a252057
BLAKE2b-256 42b6a2588fb9e4b3280e151ddd5f790eb9c0aaa26bd3420b0e658dd083ac151c

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillsaw-0.18.0-py3-none-any.whl:

Publisher: release.yml on stbenjam/skillsaw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page