* feat: distribute as a Claude Code / Cowork plugin
Package the skill as a single-plugin marketplace so it can be installed
via /plugin instead of a bare clone. This is the only path that works in
Claude Cowork, which loads skills exclusively from installed plugins
(see #12).
Root SKILL.md stays the single source of truth; the plugin's bundled
copy at plugins/avoid-ai-writing/skills/avoid-ai-writing/SKILL.md is
generated by scripts/sync-plugin-skill.sh. A CI workflow regenerates it
and fails on drift or a plugin.json/SKILL.md version mismatch.
Validated with `claude plugin validate` and a full local
add-marketplace / install / inspect / uninstall cycle.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix: parse plugin version safely in sync script
* fix: harden plugin version parsing in sync script
* harden skill-version parsing + plugin install docs
Builds on Copilot's plugin.json JSON-parser fix:
- sync-plugin-skill.sh: read the version only from the SKILL.md
frontmatter block (not anywhere in the file), strip CR, and fail with
a clear message if it's unparseable — closes the loose/false-green
side of the version check that the JSON parser already closed for
plugin.json.
- .gitattributes: pin *.md to LF so a CRLF checkout can't forge a
version mismatch or mask skill drift.
- README: add /reload-plugins to the install steps (skills don't
activate until reload/restart) and note updates are version-gated.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>