- readFile: fall back to stored markdown when a local/catalog source file
is missing instead of 500ing on ENOENT; treat an explicit "."/"" github
repoSkillDir as repo root instead of appending the slug; fall back to
stored markdown when the github fetch fails for SKILL.md
- updateFile: snapshot a version after each changed save (skips no-op
saves) and thread the acting user/agent through the route
- createLocalSkill: seed an "Initial version" so the Versions tab is
populated from creation
- migration 0100: backfill null install_count and enforce default/not-null
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>