plugin-refreshlisted
Install: claude install-skill kvdm-co-pilot/create-cmp
# plugin-refresh — refresh the plugin, and prove it by content
`node scripts/plugin-refresh.mjs` is the whole procedure. This file is not a copy of it.
```
node scripts/plugin-refresh.mjs --check # is it stale? changes nothing
node scripts/plugin-refresh.mjs # refresh, then prove it
node scripts/plugin-refresh.mjs --dry-run # print the plan, write nothing
```
`--check` also runs at SessionStart, as one line under the proof schedule. If that line says
`current`, there is nothing to do here.
## Why a program and not a checklist
Every step of this has a failure mode that reports success. Measured on this machine over two
days, all four at once:
- `/reload-plugins` re-reads **disk**. It never refetches from GitHub, and will happily rebuild a
cache directory out of a clone 56 commits stale.
- The cache is keyed by **version**. If a stale snapshot already declares the new number, the
reinstall records the new sha and **reuses the directory holding the old bytes**.
- `installed_plugins.json` holds one entry **per scope**. Updating the one you thought about
leaves the other behind — and the one that serves is not necessarily the one you expect. A
local entry was found pinned to a version whose sha no longer existed, rebased away.
- The version number, the plugin count, and the reload's own "N skills" line are all blind to
every one of the above.
So the program refuses to call a refresh done unless the installed tree is **byte-identical** to
the sour