Promote aitools skills-management commands to top-level#4917
Merged
Conversation
Member
|
I think we should move the code itself (the files) out of experimental as part of this as well. |
jamesbroadhead
added a commit
that referenced
this pull request
Apr 28, 2026
Per Simon's review on #4917, the source files should live outside experimental/ now that aitools is a top-level command. Renames the directory from experimental/aitools/ to aitools/ and updates all import paths, examples, and tooling references (Makefile, OWNERS, testmask, pr-checklist). The experimental/aitools alias still routes to the same package via its new import path, so 'databricks experimental aitools' continues to work as a deprecated entry point. Co-authored-by: Isaac
3 tasks
This was referenced Apr 29, 2026
c1b87a6 to
8b230d7
Compare
4 tasks
b3b6d1a to
9df5e93
Compare
7 tasks
# Conflicts: # .github/OWNERS # NEXT_CHANGELOG.md # aitools/lib/installer/SKILLS_VERSION # aitools/lib/installer/version.go
# Conflicts: # NEXT_CHANGELOG.md
simonfaltum
approved these changes
May 18, 2026
Member
simonfaltum
left a comment
There was a problem hiding this comment.
LGTM, will do a follow up to mark this as beta
* Restructure to match `cmd/apps` + `libs/apps`: move `aitools/cmd/`
to `cmd/aitools/` and `aitools/lib/{agents,installer}/` to
`libs/aitools/{agents,installer}/`. Removes the asymmetric top-level
`aitools/` directory. Updates OWNERS, Taskfile, and the agent
pr-checklist accordingly. Drops the redundant `aitools/README.md`
(apps/pipelines don't have one).
* Print a deprecation notice on every legacy invocation under
`databricks experimental aitools` (Lennart's review ask). The hidden
aliases now set cobra's `Deprecated` field so users see
`Command "install" is deprecated, use "databricks aitools install"
instead.` instead of silent forwarding.
* Stop exporting `InstallSkillsForAgentsFn`, `ListSkillsFn`, and
`PromptAgentSelection`. The legacy skills wrapper now lives in
`cmd/aitools/legacy_skills.go` next to the install/list code it
wraps, so its tests are in the same package and can use the
unexported vars directly. Deletes
`experimental/aitools/cmd/skills.go` and its `_test.go`.
* Improve the top-level `databricks aitools` Long description.
Co-authored-by: Isaac
The entry now introduces the new `databricks aitools` command group on its own terms, explains what it does (install Databricks skills from github.com/databricks/databricks-agent-skills into your coding agent), and lists the four user-facing verbs. Drops the experimental-history and backward-compat-alias detail — that lives in the PR description for reviewers, not in user-facing release notes. Co-authored-by: Isaac
Co-authored-by: Isaac
…e right tempdir Moving aitools to top-level cmd/ and libs/ means TEST_PACKAGES on Windows now runs these tests via ./cmd/... and ./libs/... globs; previously they lived under experimental/aitools/, which Windows skipped. The tests set HOME, but env.HomeEnvVar() returns "USERPROFILE" on Windows. Set both env vars at every call site, following the libs/git pattern. Co-authored-by: Isaac
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Promotes the aitools skills-management surface out of
experimental/so the stable half lives atdatabricks aitools …and slots in next to the other top-level command groups. The matching interface changes (--scopeenum,--project/--globaldeprecation,--agentsauto-detect doc) live in a stacked follow-up: #5234.This is mostly a move, but it is not move-only — see Non-move changes below.
install,update,uninstall,list,version(and the agents/installer libs they depend on) physically move fromexperimental/aitools/tocmd/aitools/+libs/aitools/, matching the existingcmd/apps/+libs/apps/layout. OWNERS, Taskfile, and the pr-checklist skill are updated to match.databricks aitools ….toolssubtree underexperimental/aitools/—query,discover-schema,get-default-warehouse,statement …— becausetools.gostill says "There are no stability guarantees for these tools".databricks experimental aitools install/update/uninstall/list/versionanddatabricks experimental aitools skills install/listkeep working as deprecated backward-compat aliases that print a notice pointing at the new path (via cobra'sDeprecatedfield).The aitools skills-management surface is feature-complete after the 5-PR series (#4810–#4814) that added state tracking, lifecycle commands, and project scope support. The
toolssubtree is functionally useful but its shape is still in flux, so promoting only the stable half.Non-move changes
In addition to the file moves, this PR:
aitools/README.md(apps/pipelines don't carry one); the same info lives in the command's Long description.databricks aitoolscommand.databricks experimental aitools(Lennart's review ask — they used to forward silently).experimental aitools skills install [name]wrapper is wired: the wrapper now lives incmd/aitools/legacy_skills.goalongside the install code it wraps, and the previously-exported test-injection vars (InstallSkillsForAgentsFn,ListSkillsFn,PromptAgentSelection) are back to unexported. The two now-empty experimental files (experimental/aitools/cmd/skills.goandskills_test.go) are deleted.What's not in this PR
These are deliberately separated and reviewed independently:
--scope=project|global|bothflag, deprecation of--project/--globalviacobra.Deprecated,--agentsauto-detect help text.--output jsonondatabricks aitools list.Command shape after this PR
Test plan
databricks aitools --helpshows install/update/uninstall/list/version (notools)databricks --helplistsaitoolsin the outputdatabricks experimental aitools installprints a deprecation notice and still forwardsdatabricks experimental aitools tools query …runs as beforedatabricks experimental aitools tools --helplists query/discover-schema/get-default-warehouse/statementcmd/aitools/legacy_skills_test.goThis pull request was AI-assisted by Isaac.