Skip to content

0.4.0

2026-05-07 · View on GitHub

What's New

Renamed to skillsaw

The package has been renamed from claudelint to skillsaw. The claudelint CLI and Python imports continue to work as aliases.

.claude/ directory linting

Skillsaw now detects and lints .claude/ directories as a distinct repository type (DOT_CLAUDE), separate from plugins. This covers skills, agents, hooks, MCP servers, and rules within .claude/ layouts.

agentskills.io support

Full support for linting agentskills.io skill packages — frontmatter validation, naming rules, directory structure, and evals format.

Rule changes

  • New: Validation of agentskills.io optional frontmatter fields (license, compatibility, metadata, allowed_tools)
  • New: Warning on unknown rule IDs in config
  • Updated: MCP rules synced with upstream Claude Code spec (HTTP/SSE transports, headers, startupTimeout, headersHelper, alwaysLoad, oauth)
  • Updated: Hooks rules synced with upstream spec (mcp_tool type, shell, if, async_rewake fields, new event types)
  • Updated: skills/ directory accepted as valid plugin component
  • Removed: commands-dir-required and commands-exist rules (deprecated upstream)

Self-linting

Skillsaw now includes a test that lints its own .claude/ directory, ensuring the repo's configuration stays valid as rules evolve.