Skip to content

Promote aitools skills-management commands to top-level#4917

Open
jamesbroadhead wants to merge 13 commits into
mainfrom
jbroadhead/aitools-public
Open

Promote aitools skills-management commands to top-level#4917
jamesbroadhead wants to merge 13 commits into
mainfrom
jbroadhead/aitools-public

Conversation

@jamesbroadhead
Copy link
Copy Markdown

@jamesbroadhead jamesbroadhead commented Apr 8, 2026

Summary

Move-only PR. Promotes the aitools skills-management surface out of experimental/ to a new top-level aitools/ package, preserving today's behavior. The matching interface changes (--scope enum, --project/--global deprecation, --agents auto-detect doc) live in a stacked follow-up: #5234.

  • Source files for install, update, uninstall, list, version (and the agents/installer libs they depend on) physically move from experimental/aitools/ to top-level aitools/, so the directory layout matches the stability tier.
  • The top-level command is registered at databricks aitools ….
  • Keeps the tools subtree under experimental/aitools/query, discover-schema, get-default-warehouse, statement … — because tools.go still says "There are no stability guarantees for these tools".
  • The hidden skills alias group also stays under experimental/aitools/.
  • The old paths under databricks experimental aitools install/update/uninstall/list/version and databricks experimental aitools skills install/list keep working as silent backward-compat aliases — no deprecation warning fires, the commands just forward.

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 tools subtree is functionally useful but its shape is still in flux, so promoting only the stable half.

What's not in this PR

These are deliberately separated and reviewed independently:

Command shape after this PR

# Stable, top-level
databricks aitools install      # use --skills <name>[,<name>...] for specific skills
databricks aitools update
databricks aitools uninstall
databricks aitools list
databricks aitools version

# Silent backward-compat aliases (no warning)
databricks experimental aitools install/update/uninstall/list/version
databricks experimental aitools skills {list,install}

# Experimental, unchanged path
databricks experimental aitools tools query
databricks experimental aitools tools discover-schema
databricks experimental aitools tools get-default-warehouse
databricks experimental aitools tools statement {submit,get,status,cancel}

Test plan

  • databricks aitools --help shows install/update/uninstall/list/version (no tools)
  • databricks --help lists aitools in the output
  • databricks experimental aitools install runs without warning and the work happens (silent alias)
  • databricks experimental aitools tools query … runs as before
  • databricks experimental aitools tools --help lists query/discover-schema/get-default-warehouse/statement
  • Existing aitools tests pass plus alias-forwarding coverage in experimental/aitools/cmd/skills_test.go

This pull request was AI-assisted by Isaac.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 9, 2026

Approval status: pending

/cmd/apps/ - needs approval

Files: cmd/apps/init.go
Suggested: @arsenyinfo
Also eligible: @pkosiec, @MarioCadenas, @fjakobs, @keugenek, @calvarjorge, @Shridhad, @atilafassina, @igrekun, @pffigueiredo, @ditadi

/experimental/aitools/ - needs approval

4 files changed
Suggested: @arsenyinfo
Also eligible: @pkosiec, @MarioCadenas, @fjakobs, @keugenek, @lennartkats-db, @calvarjorge, @Shridhad, @atilafassina, @igrekun, @pffigueiredo, @ditadi

General files (require maintainer)

36 files changed
Based on git history:

  • @simonfaltum -- recent work in ./, experimental/aitools/cmd/, .github/

Any maintainer (@andrewnester, @anton-107, @denik, @pietern, @shreyas-goenka, @simonfaltum, @renaudhartert-db) can approve all areas.
See OWNERS for ownership rules.

@simonfaltum
Copy link
Copy Markdown
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
@simonfaltum simonfaltum force-pushed the jbroadhead/aitools-public branch from c1b87a6 to 8b230d7 Compare April 30, 2026 08:12
@simonfaltum simonfaltum changed the title Promote aitools from experimental to top-level command Promote aitools skills-management commands to top-level Apr 30, 2026
@jamesbroadhead
Copy link
Copy Markdown
Author

Hi @pietern — Claude here, on James's behalf.

Just merged origin/main into this PR (one conflict in NEXT_CHANGELOG.md, resolved by keeping both entries). go build ./... and go vet clean.

Could you take a look when you have a chance? You've been the most active reviewer/committer in aitools/ recently and are a top-level maintainer, so picking you over the other auto-assigned reviewers.


This comment was generated with GitHub MCP.

@simonfaltum
Copy link
Copy Markdown
Member

Hi @jamesbroadhead
Any chance we could hold off with changing the behavior to databricks aitools install
If we do "databricks aitools install " then we lock ourselves into a corner, and databricks aitools install --skill would do the same thing. The reason behind my caution is that we are still a bit unsure how aitools will evolve in the future, and what might be next thing coming for Agents after skills.

Copy link
Copy Markdown
Contributor

@lennartkats-db lennartkats-db left a comment

Choose a reason for hiding this comment

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

Only minor comments, PTAL. And I'd like for @simonfaltum to sign off on this as well since we'd promote aitools out of experimental here (even if he's co-author).

- Install the AI tools in coding agents (install)
- Manage skills (skills)
- Access tools directly (tools)`,
// Hidden silent backward-compatibility aliases for the skills-management
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good to have the backward compatibility, but maybe we can display a warning if they're used? (I think there's a Deprecated property that can be used for this)

Comment thread aitools/cmd/install.go Outdated
Per Simon's review: avoid locking the top-level `databricks aitools install`
into a positional that means "skill", since the aitools surface may grow
commands for things beyond skills. `--skills name1,name2` remains the
documented way to scope an install.

The legacy alias `experimental aitools skills install <name>` keeps its
positional form by translating to `--skills` before delegating.

Co-authored-by: Isaac
@jamesbroadhead
Copy link
Copy Markdown
Author

jamesbroadhead commented May 11, 2026

Hi @simonfaltum @lennartkats-db — Claude here, on James's behalf.

Update (after this comment was originally posted): Per Simon's request, the interface changes (--scope enum, --project/--global deprecation via cobra.Deprecated, --agents auto-detect doc) have been split out into a follow-up PR — #5234. This PR now contains only the move from experimental/aitools/ to top-level aitools/.

#5234 is stacked on this PR (will rebase to main once this lands), so its GitHub diff shows only the interface changes. Simon is the requested reviewer there.

The positional [skill-name] discussion was already addressed by the earlier force-push that dropped the positional form (current top commit on this branch).

The earlier question on whether the databricks experimental aitools … path should surface a Deprecated warning (currently silent) is still open on this PR — happy to add it here if you'd prefer.

PR: #4917


This comment was generated with GitHub MCP.

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.

4 participants