Repository navigation
v0.2.0
Tightens the plugin to a single prose linter and makes its always-on surface cheap.
Install with /plugin install docs-editing@cadasto — the catalog entry is pinned to this tag.
Removed
The markdownlint integration, entirely. Deleted references/markdownlint.jsonc and removed the tool from docs-lint-setup (now Vale-only), copy-editing, technical-writing, the docs-editing router, prose-reviewer, the Cursor rule, and both hooks. It required a Node toolchain that could not be verified, and prescribing a tool the assistant cannot run contradicts this plugin's own advice-equals-tooling principle. Vale is now the only linter shipped.
Markdown structure rules therefore have no enforcer. style-guide.md §6 no longer claims otherwise — those rules are conventions applied by judgment, and a consuming repo's own structural linter takes precedence.
Changed
Every skill description rewritten for the skill-listing budget. Claude Code caps the always-on skill listing at contextWindow × 4 × skillListingBudgetFraction characters. Over budget it does not shorten descriptions — it drops them whole, so a skill degrades to a bare name with nothing to trigger on. Selection is greedy by usage priority (usageCount × 0.5^(days/7)), which is exactly 0 for a never-used skill, so a new plugin's skills compete last and length is the only lever they control.
Trigger phrases and sibling disambiguation were kept; the lead-in restating the skill name and the mechanism prose were dropped. Total description weight falls from 3,635 to 1,861 characters — measured over an identical 84-skill listing, 35,560 → 33,786, taking the plugin from 10.8% of the listing for 8.3% of the skills to 6.1%.
Hooks. prose-lint-on-save.sh is Vale-only and opt-in on .vale.ini alone; session-start.sh no longer treats a markdownlint config as a docs-workspace signal.
Docs. docs/install.md records Vale's exit codes (0 clean, 1 findings, 2 config error) and that the release binary is the working install route — go install fails to build against tree-sitter.
Fixed
The agents were described as read-only while holding Bash. prose-reviewer and seo-auditor are now report-only: no Write/Edit in the tool grant, with no-edit stated as a contract the body keeps rather than a sandbox that enforces it. The v0.1.0 notes and README carried the inaccurate wording.
marketing-copy prescribed vale without declaring Bash, so its own pre-handover self-check could not run without a permission prompt its sibling skills avoid.
The documented local-install command did not exist. claude plugin add is not a subcommand — and because claude plugin <unknown> prints general help and exits 0, the wrong command never failed visibly. Replaced with claude --plugin-dir <path> (session-scoped) across README.md, docs/install.md, docs/versioning.md, and AGENTS.md.
Added
Tool-grant invariants in scripts/validate.py. A component whose body prescribes a shell command must declare Bash; an agent must not declare Write/Edit, nor call itself "read-only" while holding a write-capable tool. Both are negative-tested against the defects above — the advice/capability mismatches that shipped in 0.1.0 now fail CI.
Full changelog: v0.1.0...v0.2.0