Skip to content

skills: promote databricks-vector-search to stable#87

Merged
simonfaltum merged 7 commits into
mainfrom
jb/promote-vector-search-to-stable
Jun 2, 2026
Merged

skills: promote databricks-vector-search to stable#87
simonfaltum merged 7 commits into
mainfrom
jb/promote-vector-search-to-stable

Conversation

@jamesbroadhead

Copy link
Copy Markdown
Contributor

Summary

Per Lennart's audit on #73, item #10: Vector Search is no longer considered experimental in Genie Code. Promote experimental/databricks-vector-search/skills/databricks-vector-search/.

Changes

  • git mv experimental/databricks-vector-search skills/databricks-vector-search.
  • Move the 4 top-level reference files into references/ to match the stable-skills layout convention (apps, lakebase, pipelines).
  • SKILL.md frontmatter: add parent: databricks-core and metadata.version: "0.1.0". Body: add the standard "FIRST: Use the parent databricks-core skill" prelude.
  • Rewrite 10 path references in SKILL.md for the new references/<file>.md locations.
  • scripts/skills.py: add databricks-vector-search to SKILL_METADATA.
  • Root README.md "Available Skills" list: add databricks-vector-search.
  • experimental/README.md: remove from the experimental skill list.

Manifest regenerated; python3 scripts/skills.py validate passes.

Cross-repo

  • a-d-k tombstone PR databricks-solutions/ai-dev-kit#546 currently redirects databricks-vector-search with --experimental. I'll drop the flag in that PR to match this promotion.
  • Stacking concern: this PR has zero overlap with the open references-restructure PR #86 since the vector-search files move in this PR too (commit includes the references/ move). Whichever lands first, the other will rebase cleanly with no conflicts in the vector-search subtree.

Test plan

  • python3 scripts/skills.py generate clean.
  • python3 scripts/skills.py validate passes (Everything is up to date.).
  • CI green.
  • Reviewer confirmation that stable classification is correct (@simonfaltum flagged this).

This pull request and its description were written by Claude.

Per Lennart's audit on #73: vector-search is no longer considered
experimental in the Genie Code world. Promote it from
`experimental/databricks-vector-search/` to `skills/databricks-vector-search/`.

Changes:
- `git mv experimental/databricks-vector-search skills/databricks-vector-search`.
- Move the 4 top-level reference files into `references/` for layout
  consistency with other stable skills (apps, lakebase, pipelines).
- SKILL.md: add `parent: databricks-core`, `metadata.version: "0.1.0"`,
  and the standard "FIRST: Use the parent databricks-core skill" prelude.
  Rewrite 10 path references for the new `references/<file>.md` locations.
- scripts/skills.py: add `databricks-vector-search` to `SKILL_METADATA`
  with a stable description.
- Update root README "Available Skills" list to include it; remove from
  experimental/README list.

Manifest regenerated. `python3 scripts/skills.py validate` passes.

Once this lands, the matching change in the a-d-k tombstone PR
(databricks-solutions/ai-dev-kit#546) is to drop the `--experimental`
flag from the vector-search tombstone's install command. I'll update
that PR directly.

Co-authored-by: Isaac

@dustinvannoy-db dustinvannoy-db left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'm good with promoting to stable

…rch-to-stable

# Conflicts:
#	experimental/databricks-vector-search/end-to-end-rag.md
#	experimental/databricks-vector-search/index-types.md
#	experimental/databricks-vector-search/references/end-to-end-rag.md
#	experimental/databricks-vector-search/references/index-types.md
#	experimental/databricks-vector-search/references/search-modes.md
#	experimental/databricks-vector-search/references/troubleshooting-and-operations.md
#	experimental/databricks-vector-search/search-modes.md
#	experimental/databricks-vector-search/troubleshooting-and-operations.md
#	manifest.json
#	skills/databricks-vector-search/references/end-to-end-rag.md
#	skills/databricks-vector-search/references/index-types.md
#	skills/databricks-vector-search/references/search-modes.md
#	skills/databricks-vector-search/references/troubleshooting-and-operations.md
jamesbroadhead added a commit that referenced this pull request May 27, 2026
…tmatter

Adds three frontmatter fields to 17 experimental SKILL.md files that stable
skills already carry but the imported a-d-k snapshot does not:

- `compatibility: Requires databricks CLI (>= v0.294.0)`
- `metadata.version: "0.1.0"` (was the `0.0.1` script floor)
- `parent: databricks-core`

`experimental/databricks-vector-search` is intentionally skipped to avoid
conflict with #87 (promotion to stable, which adds the same fields as part of
the move).

Manifest deltas: every experimental skill's `version` flips from `0.0.1`
(scripts/skills.py fallback floor) to `0.1.0`. No other consumer-visible
fields move — `compatibility` and `parent` are SKILL.md-only and not surfaced
in manifest.json today.

## Test plan

- `python3 scripts/skills.py generate` clean
- `python3 scripts/skills.py validate` passes (`Everything is up to date.`)

This PR was prepared by Claude.
Frontmatter description still carried the old verbose text while the
manifest.json and scripts/skills.py override carried the concise version.
That meant tools reading SKILL.md saw one description; tools reading the
manifest saw another. Update the frontmatter to match.

Co-authored-by: Isaac
…rch-to-stable

# Conflicts:
#	scripts/skills.py
simonfaltum added a commit that referenced this pull request Jun 2, 2026
…tmatter (#105)

## Summary

Backfills three frontmatter fields on 17 `experimental/` SKILL.md files
that stable skills already carry but the imported a-d-k snapshot does
not:

- `compatibility: Requires databricks CLI (>= v0.294.0)`
- `metadata.version: "0.1.0"` (was the `0.0.1` `scripts/skills.py`
fallback floor)
- `parent: databricks-core`

Closes the frontmatter-version / parent-skill / CLI-compatibility gaps
in one mechanical pass — they all touch the same files.

## Why

The stable-side standard is documented in CLAUDE.md and consistently
applied across `skills/`. Experimental skills carry none of these fields
because
[#73](#73)
imported the a-d-k snapshot verbatim. PR [#73 TODO
#7](#73)
explicitly leaves the version backfill open ("when upstream a-d-k
eventually adds version fields, those win; until then, the manifest
reports the floor"). With a-d-k now deprecated, this repo is source of
truth for `experimental/` and the backfill lands here.

The promotion-time pattern (cf.
[#87](#87)
vector-search) adds these fields on the way out of `experimental/`. This
PR closes the gap for the remaining skills that haven't been promoted
yet.

## Changes

17 SKILL.md files in `experimental/`, plus manifest regeneration.

`experimental/databricks-vector-search/SKILL.md` is intentionally
**skipped** — #87 promotes it to `skills/` and adds the same fields as
part of the move; including it here would create fake conflicts.
Whichever lands first, the other rebases cleanly.

## Manifest deltas

Every experimental skill's `version` flips from `0.0.1` (the
`extract_version_from_skill` fallback floor) to `0.1.0`. `compatibility`
and `parent` are SKILL.md-only — not surfaced in manifest.json today.

## Test plan

- [x] `python3 scripts/skills.py generate` clean
- [x] `python3 scripts/skills.py validate` passes (`Everything is up to
date.`)
- [ ] CI green on this branch.

This pull request and its description were written by Claude.

---------

Signed-off-by: simon <simon.faltum@databricks.com>
Co-authored-by: simon <simon.faltum@databricks.com>
@simonfaltum simonfaltum merged commit 6d6d125 into main Jun 2, 2026
1 check passed
GabbysCode pushed a commit to GabbysCode/databricks-agent-skills that referenced this pull request Jun 15, 2026
… experimental (databricks#84)

## Summary

Merges the dev-side surface of
[`experimental:databricks-ml-training-serving/`](https://github.com/databricks-solutions/ai-dev-kit/tree/experimental/databricks-skills/databricks-ml-training-serving)
into stable's `databricks-model-serving`. Closes
[databricks#73](databricks#73
TODO #1b.

The two skills had near-zero content overlap — stable was ops-focused
(manage existing endpoints via CLI); experimental was dev-focused
(train, register, log a PyFunc or `ResponsesAgent`, deploy). Combining
them avoids forcing users to invoke two skills for what is functionally
one workflow.

**Shape:**
- SKILL.md remains the ops entry-point (create / query / update / scale
endpoints, App integration).
- 3 new `references/` files carry the dev-side flow verbatim from
experimental.
- Frontmatter `description` broadened so agent routing fires on dev-side
asks too (train, register, PyFunc, ResponsesAgent) — see `description`
field for the full trigger phrase list. NOT for: no-code agents (use
`databricks-agent-bricks`); MLflow scorers (use
`databricks-mlflow-evaluation`).

## Changes

| Stable file | Source on experimental | Covers |
|---|---|---|
| `references/training-and-serving.md` |
`databricks-ml-training-serving/SKILL.md` | Canonical
train/register/serve flow, `mlflow.{sklearn,xgboost,…}.autolog()`
patterns, UC alias-based promotion (`@prod`/`@challenger`), batch
scoring via `spark_udf`, real-time endpoint create + zero-downtime
version swap, `state.ready` vs `state.config_update` poll-both gotcha,
`jobs submit --no-wait` serverless deploy pattern, **Foundation Model
API endpoints runtime-list** (replaces the earlier static catalog draft
per @QuentinAmbard's review), and the gotchas trap-table. |
| `references/custom-pyfunc.md` |
`databricks-ml-training-serving/1-custom-pyfunc.md` | File-based PyFunc
("Models from Code" via `python_model="model.py"`), `infer_signature`,
`code_paths`, pre-deploy validation via
`mlflow.models.predict(env_manager="uv")`. |
| `references/genai-agents.md` |
`databricks-ml-training-serving/2-genai-agents.md` | `ResponsesAgent`
interface, LangGraph agent with `UCFunctionToolkit` +
`VectorSearchRetrieverTool`, the `create_text_output_item`
raw-dict-silently-fails gotcha, the `resources=[...]` passthrough-auth
list, async deploy via `agents.deploy()` from a serverless job, query
via CLI and OpenAI-compatible client. |

All 3 ports are **verbatim** — only mechanical adjustments:
1. Strip the SKILL.md frontmatter on the SKILL→reference promotion.
2. Sibling-file renames: `1-custom-pyfunc.md` → `custom-pyfunc.md`,
`2-genai-agents.md` → `genai-agents.md`.
3. Cross-skill paths bumped one level for the deeper `references/`
location. Stable peers (`databricks-jobs`) use `../../`;
experimental-only peers (`databricks-agent-bricks`,
`databricks-mlflow-evaluation`, `databricks-vector-search`,
`databricks-unity-catalog`) use `../../../experimental/`.

**SKILL.md updates** (kept tight — ops focus preserved):
- FM-endpoint discovery now points to
`references/training-and-serving.md#foundation-model-api-endpoints`.
- New `### Develop & deploy new models` subsection under "What's Next"
with a 3-row table linking the new references.
- Frontmatter `description` expanded to cover the dev surface (see
above).
- Version bumped to **0.3.0**.

**Manifest**: regenerated via `python3 scripts/skills.py generate`.

## Reviewer history

Earlier commits on this branch made two mistakes that have since been
corrected:
1. Initial draft sourced FM endpoint content from
`main:databricks-model-serving/` rather than
`experimental:databricks-ml-training-serving/` — caught by
@QuentinAmbard, reworked.
2. The first rework still shipped a static FM endpoint catalog. The
experimental skill deliberately rejects static catalogs in favour of
`databricks serving-endpoints list | jq ...` plus runtime-resolved
defaults. Replaced with the runtime-list snippet.

## Coverage vs. databricks#73 TODO #1b

| TODO #1b item | Landed in this PR |
|---|---|
| classical-ml autolog patterns | `training-and-serving.md` § Train and
register |
| Custom PyFunc signatures | `custom-pyfunc.md` (whole file) |
| `ResponsesAgent` + `create_text_output_item` gotcha |
`genai-agents.md` § CRITICAL: output items must use helper methods |
| `UCFunctionToolkit` + `VectorSearchRetrieverTool` resource passthrough
| `genai-agents.md` § Log + register + § Resources that need passthrough
auth |
| Foundation Model API endpoint table → runtime-list |
`training-and-serving.md` § Foundation Model API endpoints |

Plus content the original TODO didn't enumerate: batch scoring via
`spark_udf`, real-time endpoint create + version swap, the `state.ready`
vs `state.config_update` poll-both gotcha, serverless `jobs submit
--no-wait` deploy pattern, the consolidated gotchas trap-table.

## Known follow-ups (out of scope)

- `references/training-and-serving.md` has an anchor link
`#one-time-runs-jobs-submit--async-pattern-for-notebooks` into
`databricks-jobs/SKILL.md`. The section exists in a-d-k's
`databricks-jobs` but not yet in d-a-s `databricks-jobs/SKILL.md`. Link
falls back to the file top.
- `references/off-platform-streaming.md` (pre-existing from
[databricks#76](databricks#76)) is
in the manifest but unwired from SKILL.md. Untouched by this PR.
- If
[databricks#87](databricks#87)
promotes `databricks-vector-search` to stable, the
`../../../experimental/databricks-vector-search/SKILL.md` link in
`training-and-serving.md` should be flipped to the stable path. databricks#87's
link-sweep should handle it.

## Test plan

- [x] `python3 scripts/skills.py generate` clean.
- [x] `python3 scripts/skills.py validate` passes (`Everything is up to
date.`).
- [x] All 3 new reference files diff cleanly against upstream (only the
mechanical adjustments above).
- [x] All 6 cross-skill links in the new reference files resolve to
existing files in this repo.
- [ ] CI green on this branch.
- [ ] Owner review (`@databricks/eng-apps-devex` per CODEOWNERS).

This pull request and its description were written by Claude.

---------

Co-authored-by: Dustin Vannoy <dustin.vannoy@databricks.com>
Co-authored-by: Atila Fassina <atila@fassina.eu>
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.

3 participants