# databricks-serverless-migration

A skill that checks Databricks notebooks and jobs for serverless compatibility, names the broken parts and walks the migration step by step.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 631 installs · ★ 368
- Author: databricks
- License: LicenseRef-Unknown · policy=link-only · description only; the file stays with the author
- Source: https://github.com/databricks/databricks-agent-skills/tree/HEAD/skills/databricks-serverless-migration/SKILL.md
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/skills/databricks-serverless-migration

## What it does

Point the agent at your notebooks, jobs or pipelines and it tells you whether the workload runs on serverless compute. It first gathers the classic cluster setup: instance type, DBR version, libraries, init scripts, networking. Then it reads the code and sorts every finding into one of three buckets. Things Databricks is still adding support for, things you have to change yourself, and things that will never run on serverless.

The fixes are specific. RDD calls get rewritten to the DataFrame API, DBFS paths move to UC Volumes, Hive Metastore tables go to Unity Catalog, ProcessingTime triggers become AvailableNow. Cluster-level Spark configs are dropped, since serverless tunes them on its own. Scala JAR jobs take a separate path: build against 2.13.16, and depend on `databricks-connect` with `% Provided` scope rather than bundling `spark-core`.

You need `databricks CLI` v0.292.0 or newer. The skill also leans on the parent `databricks-core` skill for authentication and profile selection, so those CLI steps stall without it. Upgrading classic DBR between versions is a different job with a different compatibility surface, and this skill does not cover it. When a workload spans several notebooks, the agent handles them one at a time because the context window fills up fast otherwise.

## Requirements
- Works with: Databricks

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add databricks/databricks-agent-skills --skill databricks-serverless-migration -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/databricks-serverless-migration/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/databricks-serverless-migration/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add databricks/databricks-agent-skills --skill databricks-serverless-migration -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/databricks-serverless-migration/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add databricks/databricks-agent-skills --skill databricks-serverless-migration -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/databricks-serverless-migration/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install databricks/databricks-agent-skills databricks-serverless-migration
```

2. **Manually: put the files in place**
- File: `.github/skills/databricks-serverless-migration/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add databricks/databricks-agent-skills --skill databricks-serverless-migration -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/databricks/databricks-agent-skills --path skills/databricks-serverless-migration
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/databricks-serverless-migration/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add databricks/databricks-agent-skills --skill databricks-serverless-migration -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/databricks/databricks-agent-skills/tree/HEAD/skills/databricks-serverless-migration/SKILL.md

## When to use it
- check whether an existing notebook runs on serverless compute
- rewrite RDD code with the DataFrame API
- move DBFS paths onto UC Volumes
- rebuild a Scala JAR job for serverless
- strip Spark configs that serverless sets itself

## Example prompts
- Check `etl_daily.py` for anything that breaks on serverless compute
- Rewrite the DBFS reads in this notebook to use UC Volumes
- Rebuild `build.sbt` for the `spark_jar_task` job so it runs on serverless

## Similar
- [xlsx](https://affpapa.org/en/nevibecode/skills/xlsx.md) — skill · 187223 installs
- [google-agents-cli-observability](https://affpapa.org/en/nevibecode/skills/google-agents-cli-observability.md) — skill · 511300 installs
- [caveman-evidence-review](https://affpapa.org/en/nevibecode/skills/caveman-evidence-review.md) — skill · 104500 installs
- [migration](https://affpapa.org/en/nevibecode/skills/migration.md) — skill · 103900 installs
- [performance-optimization](https://affpapa.org/en/nevibecode/skills/performance-optimization.md) — skill · 65200 installs
- [supabase](https://affpapa.org/en/nevibecode/skills/supabase.md) — skill · 8 installs

From the same set: [databricks/databricks-agent-skills](https://affpapa.org/en/nevibecode/by/databricks/databricks-agent-skills.md) — 18 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
