From oracle-ai-data-platform-workbench-databricks-migrator
Resumes an interrupted notebook migration by skipping already-migrated notebooks using in-memory and on-cluster caches. Useful after crashes or manual fixes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/oracle-ai-data-platform-workbench-databricks-migrator:aidp-resume-migrationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The migrator is designed to be resumable. Each successful Pass-1 dep migration is cached in two places:
aidp-resume-migration — pick up where you left offThe migrator is designed to be resumable. Each successful Pass-1 dep migration is cached in two places:
_migration_cache dict in job_migrate.py (in-memory, per-run).os.path.exists() probe against the output path (persistent across runs).Pass-2 task notebooks are similarly skipped if their final .ipynb already exists at <output-base>/<job>/notebooks/....
aidp-migrate-job run was killed (Ctrl-C, cluster restart, network drop, timeout).python3 ${CLAUDE_PLUGIN_ROOT}/engine/scripts/job_migrate.py \
--manifest reports/<MyJob>_manifest.json \
--cluster <CLUSTER_ID> \
--aidp-base <AIDP_BASE> \
--datalake-ocid <DATALAKE_OCID> \
--workspace-id <WORKSPACE_UUID> \
--output-base <output-workspace-path> \
--oci-profile <profile>
The default flag is --skip-migrated (ON). Every notebook already at the output path is silently skipped. So a plain re-invoke after a crash IS the resume — no special flag needed.
If the failure was task-specific and you want to start there (skipping all earlier tasks):
python3 ${CLAUDE_PLUGIN_ROOT}/engine/scripts/job_migrate.py \
--manifest reports/<MyJob>_manifest.json \
--start-task <substring_of_task_key>
# + the rest of the standard args
--start-task is a substring match on task_key. Skip every task whose key sorts before the matched task.
python3 ${CLAUDE_PLUGIN_ROOT}/engine/scripts/job_migrate.py \
--manifest reports/<MyJob>_manifest.json \
--only-tasks "<task_key_1>,<task_key_2>"
# + the rest
Useful when you've manually fixed one dep and want to re-run only the tasks that consume it.
You typically DON'T want this — it burns Claude tokens. But if you must:
python3 ${CLAUDE_PLUGIN_ROOT}/engine/scripts/job_migrate.py \
--manifest reports/<MyJob>_manifest.json \
--no-skip-migrated
# + the rest
Warning: this overwrites any manual edits the user applied to the previously-migrated .ipynb at the output path. If the user has made manual fixes, REFUSE to use this flag without explicit "yes, overwrite my edits".
The cache can be wrong in these scenarios — clear it manually if you see them:
| Scenario | Fix |
|---|---|
| User edited the SOURCE Databricks notebook after the prior migration. The migrator still skips it (output already exists). | Delete the corresponding output .ipynb from AIDP workspace + re-run. |
| User modified the manifest to add a new dep, but a previously-migrated task still uses the OLD dep path. | Delete the output .ipynb for that task + re-run. |
The output .ipynb was created but is empty / corrupt (cluster died mid-write). | Delete the bad file + re-run. |
There's no --clear-cache flag — the cache IS the filesystem state of <output-base>.
Before invoking, verify the cluster is still Active (might have been auto-stopped for idle):
# (use the bootstrap skill's check)
If Stopped, start it via AIDP console. The first cell after resume will pay a connection-setup cost (~10-30s), then steady-state resumes.
# List all migrated notebooks for this job
oci os object list ... (or use AIDP workspace listing)
ls reports/<job-name>/notebooks/ # local mirror after a successful run
Or just tail the log and look for [SKIP] already migrated: lines on resume.
aidp-migrate-job — read JOB_REPORT.md, route failed cells to aidp-fixup-cell, etc.claude plugin install oracle-ai-data-platform-workbench-databricks-migrator@claude-plugins-official2plugins reuse this skill
First indexed Jul 17, 2026
Migrates Databricks jobs to AIDP by rewriting notebook code and executing tasks on a live cluster with verification and retries.
Plans and executes notebook/job migrations onto AIDP by composing ingestion, notebook, pipeline, and validation skills. Use when porting Databricks workloads to AIDP.
Ports Databricks notebooks and jobs to Microsoft Fabric, including dbutils-to-notebookutils substitution, Unity Catalog namespace reduction, DBFS-to-OneLake path conversion, and Databricks Jobs to Spark Job Definitions.