RFC: subtree-sync skills from databricks-agent-skills/experimental#530
Draft
jamesbroadhead wants to merge 3 commits into
Draft
RFC: subtree-sync skills from databricks-agent-skills/experimental#530jamesbroadhead wants to merge 3 commits into
jamesbroadhead wants to merge 3 commits into
Conversation
git-subtree-dir: databricks-skills/imported git-subtree-split: b8781b713f0c80e7e827288e10b3e5db692f6084
…s-skills/imported'
Proposes a subtree-based back-link from databricks-solutions/ai-dev-kit to databricks/databricks-agent-skills/experimental/, replacing the current ad-hoc copy. - `databricks-skills/imported/` is added as a `git subtree` of the `experimental-only` branch of databricks-agent-skills (a branch whose root tree mirrors experimental/, produced via `git subtree split` on that side after every push to main). - `.github/workflows/sync-skills-from-das.yml` runs weekly (and on manual dispatch), pulls the subtree, and opens an auto-PR on drift. - `databricks-skills/SYNC.md` documents the mechanism, manual-sync command, and trade-offs vs submodule / rsync / fork. - `databricks-skills/README.md` gets a banner pointing at imported/. Paired with databricks/databricks-agent-skills#73 (which establishes the experimental/ directory on d-a-s side) and a follow-up PR there to add the split-publish workflow that maintains experimental-only. For this RFC the subtree was added from a one-shot preview branch (experimental-only-preview) pushed manually to d-a-s. The follow-up will replace that with the auto-maintained experimental-only branch.
7 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 (RFC / draft)
Proposes a
git subtree-based back-link from this repo'sdatabricks-skills/to
databricks/databricks-agent-skills/experimental/.Paired with databricks/databricks-agent-skills#73
which establishes the
experimental/directory on the d-a-s side.What changes
databricks-skills/imported/— new directory, added as agit subtreeof the
experimental-onlybranch ofdatabricks-agent-skills. Contains the25 imported skills (the 26 a-d-k skills minus the dropped
databricks-model-serving)..github/workflows/sync-skills-from-das.yml— weekly cron + manualdispatch. Runs
git subtree pull, opens an auto-PR if there is drift.databricks-skills/SYNC.md— operator runbook + mechanism explainer +trade-offs vs submodule / rsync / fork.
databricks-skills/README.md— banner block pointing atimported/andSYNC.md, with explicit "do not edit imported/ here" note.
How it works
git subtreecan't pull a subdirectory of a remote repo directly — the remoteneeds to publish a branch whose root tree is what you want. So:
git subtree split --prefix=experimental --branch=experimental-onlyafter each push to main and force-pushes the result. The branch's root is
the contents of
experimental/.git subtree pull --prefix=databricks-skills/imported <d-a-s-url> experimental-only --squashbrings drift in, recorded as a squashed merge commit referencing the
upstream SHA.
git log --grep "Squashed 'databricks-skills/imported/'"shows the full sync history;
git blameon an imported skill points backto its upstream commit.
Status
Draft / RFC. The subtree was added from a one-shot preview branch
(
experimental-only-preview)pushed manually to d-a-s for this demo. Before merge:
first so
experimental/exists onmain.experimental-onlyauto-publish workflow.experimental-only(not
-preview), re-run subtree-add against the stable branch, and forcethe squash commits in this PR to be replaced.
Open questions
imported/asa new directory; the existing skills at
databricks-skills/<name>/stayput. Long-term we probably want all skills to live under
imported/andfor
install_skills.shto read from one place — but that migration isout of scope here.
imported/,git subtree pullwill conflict. SYNC.md says "don't edit" but doesn'tenforce. Should we add a pre-commit hook that rejects edits under
imported/?push via repository_dispatch?
to auto-merge if CI is green?
Alternatives considered
rsyncfrom a fresh clone — simpler workflow, noexperimental-onlybranch needed. Trade-off: loses the squashed-merge audit trail and
git log/blameprovenance.git submodule— can't reference a subdirectory of the target repo,and end users would need
git submodule updateto see skill content.SYNC.md captures these trade-offs in more detail.
This pull request and its description were written by Claude.