Skip to content

v0.4.0

Choose a tag to compare

@stbenjam stbenjam released this 07 May 15:54
· 1435 commits to main since this release
5db70a2

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.