Skip to content

Skill profiles: install only what you need#279

Merged
calreynolds merged 9 commits intodatabricks-solutions:mainfrom
malcolndandaro:feature/install/enable-skills
Mar 10, 2026
Merged

Skill profiles: install only what you need#279
calreynolds merged 9 commits intodatabricks-solutions:mainfrom
malcolndandaro:feature/install/enable-skills

Conversation

@malcolndandaro
Copy link
Collaborator

@malcolndandaro malcolndandaro commented Mar 9, 2026

Video: https://www.loom.com/share/754314ef950b49cdbedab1452a7d3ee9

What this does

Instead of installing all 34 skills, users pick a profile matching their role. Profiles can be combined. Default is still "All" — nothing breaks for existing users.

Profiles

Profile Skills What it covers
All (default) 34 Everything
Data Engineer 14 Pipelines (SDP), Structured Streaming, Jobs, Asset Bundles, DBSQL, Iceberg, Zerobus, Metrics
Business Analyst 8 AI/BI Dashboards, DBSQL, Genie, Metrics
AI/ML Engineer 17 Agents, Vector Search, Model Serving, MLflow (8 skills), Parsing, Evaluation
App Developer 10 Dash/Streamlit apps, APX, Lakebase, Model Serving, Asset Bundles
Custom pick Individual skill picker

Core skills (databricks-config, databricks-docs, databricks-python-sdk, databricks-unity-catalog) are always installed regardless of profile.

Usage

# Interactive — shows a profile picker
bash install.sh

# Non-interactive
bash install.sh --skills-profile data-engineer
bash install.sh --skills-profile data-engineer,ai-ml-engineer
bash install.sh --skills databricks-jobs,databricks-dbsql

# See what's available
bash install.sh --list-skills

Upgrade behavior

  • Existing users upgrading: profile picker shown with "All" pre-selected. Press Enter to keep everything, or switch to a smaller profile.
  • Changing profile on same version: pass --skills-profile <new> — no --force needed.
  • Deselected skills get cleaned up: tracks installed skills in a manifest so switching from "All" to "Data Engineer" removes the skills you no longer need. Only removes skills we installed — never touches user-created ones.
  • Per-project profiles: project-scoped installs store profile/manifest in ./.ai-dev-kit/, so different projects can have different profiles.

Tested

  • macOS — fresh install with profile selection
  • macOS — upgrade from previous version (no .skills-profile), "All" pre-selected
  • Windows Server 2022 — fresh install with install.ps1
  • Windows Server 2022 — upgrade from previous version

malcolndandaro and others added 5 commits March 9, 2026 17:21
Add persona-based skill profiles (Data Engineer, Business Analyst,
AI/ML Engineer, App Developer) so users can install only relevant
skills instead of all 34. Core skills (config, docs, python-sdk,
unity-catalog) are always installed.

New features:
- --skills-profile flag for profile-based selection (multi-select)
- --skills flag for individual skill selection
- --list-skills flag to display available profiles and skills
- Interactive multi-select prompt in installer UI
- Custom mode for individual skill picking
- Profile persistence across reinstalls (.skills-profile file)
- Default remains "install all" for backward compatibility

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace generic checkbox_select with custom skill profile selector
that has mutual exclusion logic: selecting "All" deselects individual
profiles, selecting any individual profile deselects "All". Provides
immediate visual feedback during selection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Track installed skills in a manifest file (.installed-skills) so that
when users change their skill profile on upgrade, skills that are no
longer selected get removed. Only removes skills we installed — never
touches user-created skill directories.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Store .skills-profile and .installed-skills per-scope so project-level
installs can have different skill profiles than global installs. Falls
back to global ~/.ai-dev-kit/ when reading, for backward compat with
users upgrading from older versions that only stored state globally.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Allow users to change their skill profile without --force by bypassing
the "already up to date" exit when --skills-profile or --skills differs
from the saved profile. Also updated the hint message to mention
--skills-profile as an alternative to --force.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@malcolndandaro malcolndandaro changed the title feat: Selective skill installation by persona profiles Skill profiles: install only what you need Mar 10, 2026
@malcolndandaro malcolndandaro added the enhancement New feature or request label Mar 10, 2026
@malcolndandaro malcolndandaro self-assigned this Mar 10, 2026
@malcolndandaro malcolndandaro marked this pull request as ready for review March 10, 2026 16:27
calreynolds
calreynolds previously approved these changes Mar 10, 2026
Copy link
Collaborator

@calreynolds calreynolds left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome

@calreynolds
Copy link
Collaborator

@malcolndandaro looks just like a linting issue then you're ready to go!

The unpinned `uvx ruff` was resolving to different formatter behavior
on the CI runner (linux-ubuntu-latest) vs local dev machines, causing
persistent format check failures that couldn't be reproduced locally.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
malcolndandaro and others added 3 commits March 10, 2026 13:41
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Applied ruff formatting to files from upstream main that had multi-line
function calls fitting within 120 chars. Also reverted CI debug change.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ble-skills

# Conflicts:
#	databricks-tools-core/databricks_tools_core/auth.py
#	databricks-tools-core/tests/unit/test_sql.py
@calreynolds calreynolds merged commit 3023de7 into databricks-solutions:main Mar 10, 2026
2 checks passed
@calreynolds
Copy link
Collaborator

Amazing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants