diff --git a/Cargo.toml b/Cargo.toml index 941d490..f9d9ab8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -105,6 +105,7 @@ pre-release-replacements = [ { file = "skills/hotdata/subskills/search/SKILL.md", search = "^version: .+", replace = "version: {{version}}", exactly = 1 }, { file = "skills/hotdata/subskills/analytics/SKILL.md", search = "^version: .+", replace = "version: {{version}}", exactly = 1 }, { file = "skills/hotdata/subskills/geospatial/SKILL.md", search = "^version: .+", replace = "version: {{version}}", exactly = 1 }, + { file = ".claude-plugin/plugin.json", search = "\"version\": \"[^\"]+\"", replace = "\"version\": \"{{version}}\"", exactly = 1 }, # README.md no longer carries a hardcoded version badge — it tracks GitHub releases. ] diff --git a/scripts/check-skills.sh b/scripts/check-skills.sh index de84697..06dfb98 100755 --- a/scripts/check-skills.sh +++ b/scripts/check-skills.sh @@ -125,6 +125,13 @@ if [ "$REQUIRE_VERSION" = 1 ]; then fail=1 fi done + if [ -f .claude-plugin/plugin.json ]; then + pv="$(jq -r .version .claude-plugin/plugin.json 2>/dev/null || true)" + if [ "$pv" != "$crate" ]; then + echo "error: .claude-plugin/plugin.json declares version $pv, Cargo.toml is $crate" >&2 + fail=1 + fi + fi [ "$fail" = 0 ] && echo "→ skills: version ok ($crate)" fi diff --git a/skills/hotdata/SKILL.md b/skills/hotdata/SKILL.md index afa7840..1cfbd90 100644 --- a/skills/hotdata/SKILL.md +++ b/skills/hotdata/SKILL.md @@ -14,6 +14,16 @@ hotdata [args] Or if installed on PATH: `hotdata [args]` +## Prerequisites: CLI installation + +If the `hotdata` executable is not found on PATH or under `~/.hotdata/cli/`, prompt the user to install it: + +```sh +curl --proto '=https' --tlsv1.2 -LsSf https://github.com/hotdata-dev/hotdata-cli/releases/latest/download/install.sh | HOTDATA_NO_SKILLS=1 sh +``` + +(The `HOTDATA_NO_SKILLS=1` flag prevents duplicate skill installations when running inside the Claude Code plugin.) The installer uses Homebrew (`brew install hotdata-dev/tap/cli`) when `brew` is present; otherwise it places a prebuilt binary at `~/.hotdata/cli/hotdata`. `HOTDATA_NO_BREW=1` forces the prebuilt path. + ## Sub-skills (loaded on demand) This is the only top-level hotdata skill. Three specialized guides ship **bundled inside it** under `subskills/` and are not separate skills — **`Read` the matching file only when the task needs it** (progressive disclosure), then follow it: