Skip to content

check_update.sh: add Claude Code plugin migration commands#547

Open
jamesbroadhead wants to merge 3 commits into
databricks-solutions:mainfrom
jamesbroadhead:jb/check-update-d-a-s-marketplace-redirect
Open

check_update.sh: add Claude Code plugin migration commands#547
jamesbroadhead wants to merge 3 commits into
databricks-solutions:mainfrom
jamesbroadhead:jb/check-update-d-a-s-marketplace-redirect

Conversation

@jamesbroadhead
Copy link
Copy Markdown
Contributor

Summary

Extends the migration banner introduced in #546 so that pre-1.0.0 users see both follow-up paths, not just install.sh:

  • (A) Inside Claude Code/plugin marketplace add databricks/databricks-agent-skills + /plugin install databricks-skills + /plugin marketplace remove databricks-solutions/ai-dev-kit. Smallest possible migration; user never leaves the agent.
  • (B) Outside Claude Code — re-run install.sh, which now delegates to databricks aitools install. Required for users who want experimental skills or per-skill selection (the d-a-s plugin only ships stable).

Background

Per the experimental branch's DECOMMISSION_PLAN.md and the design discussion on #546, the long-term direction is:

  • Skills live in databricks/databricks-agent-skills (CLI + plugin marketplace).
  • databricks-solutions/ai-dev-kit retires as a skills-distribution mechanism.
  • The MCP server in this repo is being decommissioned.

This PR is the in-product hook that tells existing plugin-marketplace users how to switch.

Dependency / ordering

This depends on databricks/databricks-agent-skills adding .claude-plugin/marketplace.json so /plugin marketplace add databricks/databricks-agent-skills resolves. Databricks EMU policy blocks me from forking d-a-s, so I've staged the marketplace.json + README patch at /tmp/das-pr/ for a d-a-s maintainer (e.g. @lennartkats-db) to push. Until that d-a-s PR lands, path (A) in the banner will fail — users still have path (B) to fall back on.

Stacked on top of #546.

Test plan

  • bash -n .claude-plugin/check_update.sh passes.
  • With local VERSION 0.x.y and remote VERSION 1.0.0, the script emits the migration block including both (A) and (B) paths verbatim.
  • With local VERSION 1.0.0 and remote VERSION 1.0.1, the script emits the regular update prompt with no migration block.
  • With local VERSION == remote VERSION, the script is silent.

This PR was AI-assisted by Isaac.

jamesbroadhead and others added 3 commits May 24, 2026 21:01
Skills are now distributed via the Databricks CLI from
databricks/databricks-agent-skills. Replace each per-skill directory
with a single SKILL.md redirect pointing at
`databricks aitools install <name> [--experimental]`. Update install
scripts (install_skills.sh, install_genie_code_skills.py) to print a
deprecation/redirect message and exit. Update databricks-skills/README.md
with a per-skill redirect table, and the root README to point at the new
upstream.

Mapping notes:
- 18 experimental skills redirect to d-a-s/experimental/.
- 6 a-d-k skills were merged into d-a-s stable: databricks-bundles →
  databricks-dabs, databricks-config → databricks-core, databricks-jobs
  (kept name), databricks-lakebase-autoscale → databricks-lakebase,
  databricks-lakebase-provisioned → databricks-lakebase,
  databricks-model-serving (kept name; dev-side content port in progress
  via d-a-s PR databricks-solutions#84), databricks-spark-declarative-pipelines →
  databricks-pipelines (content port pending, owners @lennartkats-db /
  @camielstee-db).
- 1 a-d-k skill (databricks-genie) is not currently published in d-a-s;
  its tombstone says "may return in a future release".
- TEMPLATE/ is preserved as a starter template.

Supersedes the subtree-sync approach in a-d-k RFC databricks-solutions#530 (now closed).
The d-a-s `experimental-only-preview` branch can be deleted once this
PR merges.

Co-authored-by: Isaac
The previous tombstone-only PR left install.sh, install.ps1, the Claude
Code plugin manifest, and the check_update.sh upgrade prompt all driving
users into per-agent skill directories sourced from databricks-skills/ —
which under the tombstone migration would have meant copying empty "moved"
files over working installs.

This commit closes the loop:

- install.sh / install.ps1
  - Skill installation is fully delegated to `databricks aitools install`.
    The installer no longer copies skill content from this repo.
  - On run, the installer first cleans up any leftover .claude/skills/* (etc.)
    written by the old installer using the manifest it kept, then invokes
    the CLI with the user's selected profile names.
  - MIN_CLI_VERSION bumped to 1.0.0 (the release that ships top-level
    `databricks aitools`); CLI is now mandatory (die instead of warn).
  - MLflow + APX bundled-skill fetching dropped — out of scope for this
    installer. The per-user-type bundles (data-engineer / analyst /
    ai-ml-engineer / app-developer) are preserved and now map to
    post-migration d-a-s skill names.

- .claude-plugin/plugin.json: removed the `skills` field that pointed at
  ./databricks-skills/. Marketplace users get MCP only; they install
  skills via the CLI.

- .claude-plugin/check_update.sh: when the update prompt fires for users
  on a pre-1.0.0 install, the banner now includes a one-shot migration
  note explaining the CLI-based distribution and that running install.sh
  will clean up old per-agent skill directories.

- README.md: reordered so the Skills CTA is `databricks aitools install`
  first; install.sh is presented as the skills+MCP all-in-one path. CLI
  v1.0.0+ requirement called out in Prerequisites; the misleading
  databricks-skills/ row in What's Included now points at the CLI.

- databricks-skills/databricks-genie/SKILL.md: tombstone now points at
  d-a-s PR databricks-solutions#73 (which deferred Genie during the migration) and notes
  that the skill will return in a future d-a-s release.

Co-authored-by: Isaac
When the pre-1.0.0 migration banner fires, give users both follow-up
paths instead of just install.sh:

  (A) Inside Claude Code:
      /plugin marketplace add databricks/databricks-agent-skills
      /plugin install databricks-skills
      /plugin marketplace remove databricks-solutions/ai-dev-kit

  (B) Outside Claude Code:
      bash <(curl -sL .../install.sh)

Path (A) is the smallest possible migration — users never leave the
agent. It's stable-skills-only because the d-a-s plugin only loads
./skills/, by design.

Path (B) still works for users who want --experimental, per-skill
selection, or the MCP server (until it's decommissioned per the
team's DECOMMISSION_PLAN.md on the experimental branch).

Depends on `databricks/databricks-agent-skills` adding marketplace.json
to its .claude-plugin/ — staged but not yet upstreamed (Databricks EMU
policy blocks me from forking d-a-s, so the marketplace.json + README
patch are in /tmp/das-pr/ waiting on a maintainer with write access).
Until that lands, `/plugin marketplace add databricks/databricks-agent-skills`
will fail; users still have path (B) to fall back on.

Co-authored-by: Isaac
simonfaltum pushed a commit to databricks/databricks-agent-skills that referenced this pull request May 27, 2026
)

## Summary

- Adds `.claude-plugin/marketplace.json` so users can install the d-a-s
skills plugin directly from inside Claude Code:

      /plugin marketplace add databricks/databricks-agent-skills
      /plugin install databricks-skills

Without this file the existing `.claude-plugin/plugin.json` is reachable
only after cloning the repo.

- `README.md`: documents both install paths (CLI canonical, plugin
marketplace alternative for stable skills) and adds a short comparison
table covering experimental skills, per-skill selection, and
outside-agent prerequisites. The two paths install to *different*
locations (CLI writes into `~/.claude/skills/`; plugin caches under
`~/.claude/plugins/cache/<marketplace>/<plugin>/`) — the README now
spells that out instead of pretending they share a target.

## Background

`databricks-solutions/ai-dev-kit` is in the process of being retired as
a skills-distribution mechanism (see a-d-k PRs
[#546](databricks-solutions/ai-dev-kit#546),
[#547](databricks-solutions/ai-dev-kit#547),
[#548](databricks-solutions/ai-dev-kit#548) and
the team's `DECOMMISSION_PLAN.md` on the experimental branch). Users
will be redirected here for skills.

The migration banner that a-d-k will start showing pre-1.0.0 users tells
them to run `/plugin marketplace add
databricks/databricks-agent-skills`. Without this PR landing, that
command fails to resolve.

The plugin marketplace path is intentionally scoped to stable skills
(matches the existing `"skills": "./skills/"` in `plugin.json`).
Experimental skills stay CLI-only — the README's comparison table calls
that out so users know which knob to reach for.

This supersedes #92 (which was opened from a personal fork).

## Test plan

- [x] `python3 -m json.tool .claude-plugin/marketplace.json` — valid
JSON.
- [x] `claude plugin validate --strict .` on the branch — marketplace
manifest passes strict validation.
- [x] From a clean Claude Code session, `claude plugin marketplace add
<path>` + `claude plugin install databricks-skills` succeeds; `claude
plugin details databricks-skills` registers exactly the 8 stable skills
(`databricks-apps`, `-core`, `-dabs`, `-jobs`, `-lakebase`,
`-model-serving`, `-pipelines`, `-serverless-migration`); experimental
skills correctly excluded from the registered set even though they're
present in the plugin cache.
- [x] Plugin files land at
`~/.claude/plugins/cache/databricks-skills/databricks-skills/0.1.0/skills/<skill>/SKILL.md`
(the plugin path; not `~/.claude/skills/`, which is the CLI path).
- [ ] README renders cleanly on GitHub; the comparison table is legible.

This PR was AI-assisted by Isaac.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant