Skip to content

Commit 3ba44fa

Browse files
authored
docs: catalogs track main by design, drop tag-pinning narrative (#176)
## Summary We decided not to pin the marketplace catalogs to release tags. The docs still described tag-pinning as a planned "mechanical follow-up", which is now misleading. This updates the text to say the catalogs track `main` by design. ## Changes - `CLAUDE.md`, `CONTRIBUTING.md`, `README.md`, `metaplugin/README.md`: drop the "follow-up flips to tag-pinning" language; state the catalogs track `main`. - `metaplugin/plugin.meta.json`: update the `//source` comment to match. No behavior change: `ref_template` stays `main` and every catalog keeps `ref: main`. ## Test plan - [x] `python3 scripts/skills.py validate` (clean, no drift from the `//source` comment edit) - [x] `grep` confirms no tag-pinning narrative remains outside the generated bundle Signed-off-by: simon <simon.faltum@databricks.com>
1 parent 20d3b47 commit 3ba44fa

5 files changed

Lines changed: 14 additions & 21 deletions

File tree

CLAUDE.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ and `assets/` (Codex's interface logo). At the repo root, four `marketplace.json
5959
catalogs (`.claude-plugin/`, `.github/plugin/`, `.agents/plugins/`,
6060
`.cursor-plugin/` — Cursor's is new) each point a **scoped source** at *its own*
6161
provider subfolder (`plugins/databricks/<provider>`), so an install fetches only
62-
that provider's payload. The catalogs currently track `main`; a mechanical
63-
follow-up flips them to tag-pinning. The bundles, the catalogs, every
62+
that provider's payload. The catalogs track `main`, where the committed bundle
63+
lives. The bundles, the catalogs, every
6464
`plugin.json`, the hook wiring, the routing files, the rendered commands, and
6565
`manifest.json` are all **generated** from
6666
[`metaplugin/plugin.meta.json`](./metaplugin/plugin.meta.json) (and the templated
@@ -74,12 +74,10 @@ the `skills` map (with a `keyword`).
7474

7575
Everything under `plugins/` is generated, committed, and drift-checked (it is not
7676
gitignored in this repo). The catalogs' scoped source is configured under
77-
`marketplace.source` in `metaplugin/plugin.meta.json`; today every catalog tracks
78-
`main` (`ref: main`), where the committed bundle lives, so the change is safe to
79-
land with no release. A mechanical follow-up flips `ref_template` to `v{version}`
80-
so the ref-capable tools (Claude, Codex, Copilot) serve frozen release tags
81-
instead of main HEAD; Cursor cannot pin a ref and always tracks the default
82-
branch. The CLI's raw-skills (files-channel) installer is unaffected — it keeps
77+
`marketplace.source` in `metaplugin/plugin.meta.json`; every catalog tracks
78+
`main` (`ref: main`), where the committed bundle lives, so installs follow the
79+
latest committed bundle. The catalogs are not pinned to release tags by design.
80+
The CLI's raw-skills (files-channel) installer is unaffected — it keeps
8381
fetching the root `skills/`, so the manifest's stable `repo_dir` stays `skills`.
8482

8583
The generator itself lives in `scripts/skillsgen/` (a package split by concern:

CONTRIBUTING.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ display names, the scoped-source config (`marketplace.source`), and
6666
hook/command/rule wiring, lives once in **`metaplugin/plugin.meta.json`**.
6767
`scripts/skills.py generate` renders it into a **per-provider** bundle under
6868
`plugins/databricks/<provider>/` and the four root catalogs, each pointing a
69-
scoped source at *its own* provider subfolder (currently `ref: main`; a follow-up
70-
flips it to tag-pinning):
69+
scoped source at *its own* provider subfolder (`ref: main`):
7170

7271
- per-provider bundles (each self-contained, only what that provider uses):
7372
- `plugins/databricks/claude/``.claude-plugin/plugin.json` + `skills/` + `commands/` + `hooks/`
@@ -196,11 +195,9 @@ through a PR and the merge queue.
196195
marketplace keys updates on the `version` field, so a release that ships
197196
without bumping it leaves marketplace clients on the cached copy and they never
198197
see the new skills.
199-
- The catalogs currently track `main` (`ref: main`), so the bundle they serve is
200-
whatever is committed on `main`; bumping the version does not change which ref
201-
installs follow. A planned follow-up flips `marketplace.source.ref_template` to
202-
`v{version}` so the ref-capable catalogs re-stamp to each release tag (the tag
203-
contains the `plugins/databricks/` bundle, since it is committed on `main`).
198+
- The catalogs track `main` (`ref: main`), so the bundle they serve is whatever
199+
is committed on `main`; bumping the version does not change which ref installs
200+
follow. The catalogs are not pinned to release tags by design.
204201
- **If a release half-completes** (the tag was pushed but the GitHub release was
205202
not created, for example the job died between the two steps), the guard treats
206203
the version as already published and skips it on the next run. Recover by

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,7 @@ The manifest is consumed by the CLI to discover available skills.
244244
The repo ships one plugin to four targets (Claude Code, Codex, Copilot, Cursor).
245245
Every agent fetches the built `plugins/databricks/` bundle (a generated copy of
246246
the source plus the four per-target `plugin.json`); four `marketplace.json`
247-
catalogs at the repo root each point a scoped source at it (currently tracking
248-
`main`; tag-pinning to frozen releases is a mechanical follow-up). The
247+
catalogs at the repo root each point a scoped source at it (tracking `main`). The
249248
bundle, the catalogs, the four `plugin.json`, and `manifest.json` are all
250249
**generated** from a single source of truth,
251250
[`metaplugin/plugin.meta.json`](./metaplugin/plugin.meta.json), by `scripts/skills.py`. Do not

metaplugin/README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@ are reverted:
2424
- **Marketplace catalogs** (at the repo root): `.claude-plugin/marketplace.json`,
2525
`.github/plugin/marketplace.json`, `.agents/plugins/marketplace.json`,
2626
`.cursor-plugin/marketplace.json` (Cursor's is new). Each points a scoped source
27-
at *its own* provider subfolder, e.g. `plugins/databricks/claude` (currently
28-
`ref: main`; a mechanical follow-up flips it to tag-pinning), configured under
29-
`plugin.meta.json` `marketplace.source`.
27+
at *its own* provider subfolder, e.g. `plugins/databricks/claude` (`ref: main`),
28+
configured under `plugin.meta.json` `marketplace.source`.
3029
- **Hook wiring**: `hooks/hooks.json`, `hooks/codex-hooks.json`,
3130
`hooks/copilot-hooks.json`, `hooks/cursor-hooks.json` (per-dialect, at the root
3231
so generation doesn't collide). The bundle renames each into its provider

metaplugin/plugin.meta.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"description": "Databricks agent skills for AI coding assistants.",
2121
"owner": { "name": "Databricks" },
2222
"displayName": "Databricks Agent Skills",
23-
"//source": "How each catalog points at the built bundle. The four plugin.json live under <subdir>/<target-dir>/, so agents fetch only <subdir> (a scoped/sparse clone). ref_template is the git ref each ref-capable catalog (Claude/Codex/Copilot) pins. It currently tracks `main`, where the bundle is committed, so this change is safe to land standalone with no release. A mechanical follow-up flips ref_template to `v{version}` so installs serve frozen release tags instead of main HEAD (the proposal's goal); `{version}` is filled from `version` above. Cursor cannot pin a ref, so it omits one and also tracks the default branch. NOTE: the Codex entry still needs its `policy` block + a remote git-subdir-at-a-tag smoke test (open question in the proposal); add `codex_policy` here once verified.",
23+
"//source": "How each catalog points at the built bundle. The four plugin.json live under <subdir>/<target-dir>/, so agents fetch only <subdir> (a scoped/sparse clone). ref_template is the git ref the ref-capable catalogs (Claude/Codex/Copilot) use; it is `main`, where the committed bundle lives, so installs follow the latest committed bundle. The catalogs are not pinned to release tags by design. Cursor cannot pin a ref anyway and tracks the default branch. NOTE: the Codex entry still needs its `policy` block + a remote git-subdir-at-a-tag smoke test (open question in the proposal); add `codex_policy` here once verified.",
2424
"source": {
2525
"subdir": "plugins/databricks",
2626
"repo": "databricks/databricks-agent-skills",

0 commit comments

Comments
 (0)