Codify the release process so we stop drifting version files and stop
leaving the repo advertising a version with no published release (the
inconsistency that plausibly got the plugin auto-removed from the store).
- scripts/release.sh: one-shot, self-verifying release. Bumps manifest.json,
package.json AND versions.json in lockstep, runs tests+build, pushes,
tags (no v prefix), waits for CI, PUBLISHES the draft immediately, then
verifies root manifest == released asset == tag. Includes a store-listing
health check.
- tests/version-consistency.test.ts: guard test — fails the build if the
three version files ever disagree (catches a forgotten versions.json bump
before tagging).
- docs/PUBLISHING.md: rewritten script-first; adds versions.json (was
omitted), the publish-immediately rule, and a 'if de-listed from the
store' runbook (ask #plugin-dev, community.obsidian.md portal, the
'entry already exists' gotcha).
- CLAUDE.md: quick-summary now points at the script and the three files.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>