0.8.0¶
2026-05-11 · View on GitHub
What's New¶
Features¶
- Lint tree architecture — complete rewrite of plugin/skill discovery using a typed tree with parent pointers, replacing ad-hoc file scanning. All rules now use tree traversal (
MarketplaceNode,ApmNode,ApmConfigNode,MarketplaceConfigNode,HooksBlock,McpBlock,ReadmeBlock) - LLM autofix for frontmatter —
skillsaw fix --llmcan now auto-correct bad YAML frontmatter in skills and agents - Context budget rule — new
context-budgetrule checks frontmatter description token budgets for skills and commands - DOT format and token counts in
skillsaw treeoutput - Verbose logging and APM tree nesting improvements
Fixes¶
- Fix CommonMark fence parsing: handle closing fence length >= opening, allow indent differences, and strip indented code fences (0-3 spaces)
- Fix thread-safety: per-file cache invalidation instead of global clears
- Fix YAML line number handling: centralized with
ruamel.yaml, correct offsets for block scalars - Fix crash on null/non-dict values in JSON config files, plugin metadata, marketplace entries
- Fix
--max-iterations 0silently ignored due to truthy check - Fix
enabled: "auto"in user config now bypasses version gate - Fix non-enabled config overrides now implicitly activate disabled rules
- Fix dry-run LLM fix exits 0 instead of 1 when changes don't improve violations
- Fix
LintToolnow appliesexclude_patternsfrom config - Fix frontmatter regex truncation on
---inside YAML values - Fix named
.instructions.mdfile detection (e.g.coding.instructions.md) - Fix semver version regex missing end anchor in
plugin-json-valid - Fix SARIF output: reject
startLine=0, add synthetic rule descriptors - Fix double-substitution in
apply_replacements - Fix
Path.rename()for command rename fixes to prevent duplicates/data loss - Fix concurrency race in LLM relint
- Fix various crash guards for binary files, missing env vars, empty hooks, unreadable files
Refactoring¶
- Centralize frontmatter parsing on tree nodes
- Introduce
ContentBlockas universal unit for linting and fixing - Support custom line mapping in
ContentFile - Migrate all rule families (coderabbit, APM, marketplace, skills, instruction files) to tree traversal
Docs¶
- Document
skillsaw treesubcommand, content-paths, version pinning, exclude patterns - Add missing repository types to README
- Clarify APM compiles to all agents, not just
.claude