954efde474
db.Skills() satisfies skill.SkillStore over SQLite, same JSON-blob + indexed columns pattern. Versions live in their own table (each SkillVersion embeds a full Skill snapshot as JSON), ordered newest-first by an append seq. Test: round-trip (Tools, ExposeAsChatbotTool), visibility listing (public/shared/private with SharedWith filtered in Go), chatbot-exposed, newest-first versions + GetVersionByID, scheduled-due query + MarkScheduledRun. contrib/store now covers budget + persona + skill; audit store next. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>