Skip to content

feat(ai): add version metadata to agent skills and surface designDataVersion in MCP primer#1175

Merged
GarthDB merged 4 commits into
mainfrom
feat/ai-tool-version-metadata
Jun 17, 2026
Merged

feat(ai): add version metadata to agent skills and surface designDataVersion in MCP primer#1175
GarthDB merged 4 commits into
mainfrom
feat/ai-tool-version-metadata

Conversation

@GarthDB

@GarthDB GarthDB commented Jun 17, 2026

Copy link
Copy Markdown
Member

Description

Adds version metadata to the three published Agent Skills and surfaces the design-data dataset version in MCP primer tool output — both driven by a leadership metrics discussion about tracking which version of the integration and which token snapshot are in use.

Two version axes are now surfaced:

  1. Tool/software version (metadata.version in SKILL.md frontmatter) — the npm package version of each skill.
  2. Dataset version (metadata.designDataVersion in the design-data skill; provenance.designDataVersion in MCP primer output) — the @adobe/spectrum-design-data version baked into the wasm at build time via EMBEDDED_DATA_VERSION.

The field was originally named tokensVersion internally in the wasm/CLI, but "tokens" is misleading — it maps to the legacy @packages/tokens package. This PR renames it to designDataVersion at source (both Rust producers: sdk/wasm/src/dataset.rs and sdk/cli/src/main.rs) so the public name matches what it represents.

Related Issue

N/A — driven by leadership metrics discussion.

Motivation and Context

Metrics teams need to correlate AI tool invocations to specific integration and dataset versions. The MCP serverInfo.version already reports tool version (was already wired). This PR closes the gap for skills (no version field) and for the dataset snapshot version (available in wasm but not propagated to the MCP primer response).

How Has This Been Tested?

  • Skill version sync tests (skill-version.test.js) added to all three skill packages — assert SKILL.md metadata.version matches package.json version; design-data skill also asserts metadata.designDataVersion matches packages/design-data/package.json. All 4 tests pass locally.
  • MCP primer provenance tests added to design-data-mcp and updated in design-data-agent-mcp — assert provenance.designDataVersion is a semver string. These require a wasm rebuild (sdk-wasm:build, CI only) since wasm-pack is not installed locally.
  • Wasm parity test (sdk/wasm/test/parity.test.js) updated to assert provenance.designDataVersion — runs in CI with built wasm.
  • Grep guard: grep -rn "tokensVersion" --include=*.rs --include=*.js --include=*.md sdk tools .changeset returns zero hits (only sdk/cli/CHANGELOG.md historical entry remains, intentionally untouched).
  • Changeset linter: node tools/changeset-linter/src/cli.js check --fail-on-warnings passes.
  • Pre-commit hooks (prettier, cargo fmt, remark, changeset lint) all passed on commit.

Types of changes

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change) — provenance.tokensVersionprovenance.designDataVersion in wasm/CLI output; internal-only crates, acceptable.

Checklist:

  • I have signed the Adobe Open Source CLA.
  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

…Version in MCP primer

- Add metadata.version to all three published SKILL.md files per agentskills.io spec
- Add metadata.designDataVersion to design-data skill (tracks @adobe/spectrum-design-data version)
- MCP primer tools now return provenance.designDataVersion for dataset version metrics
- Rename tokensVersion → designDataVersion at source (Rust wasm + CLI + all consumers)
- Add AVA sync tests to all three skill packages to catch version drift on bumps
- Register design-data-skill in moon workspace; add test infra to design-data-skill and s2-docs-mcp

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: ab1b1be

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@adobe/design-data-skill Minor
@adobe/design-data-agent-mcp Minor
@adobe/s2-docs-mcp Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Run report for ab1b1bee

Total time: 5m 59s | Comparison time: 14m 55s | Estimated savings: 8m 55s (59.8% faster)

Action Time Status Info
⬛️ SetupProto(0.51.4) 0ms Skipped
🟩 SyncWorkspace 9.2ms Passed
🟩 SyncProject(design-data-skill) 0.4ms Passed
🟩 SyncProject(design-data-spec) 0.3ms Passed
🟩 SyncProject(sdk) 0.9ms Passed
🟩 SyncProject(s2-docs-mcp) 0.4ms Passed
🟩 SyncProject(sdk-wasm) 0.4ms Passed
🟩 SyncProject(design-data) 0.5ms Passed
🟩 SyncProject(design-data-glue) 0.3ms Passed
🟩 SyncProject(design-data-agent-mcp) 0.3ms Passed
🟩 SyncProject(component-schemas) 0.3ms Passed
🟩 SyncProject(tokens) 1ms Passed
🟩 SyncProject(token-naming-audit) 0.3ms Passed
🟩 SyncProject(markdown-generator) 0.3ms Passed
⬛️ SetupToolchain(node:20.17.0) 1.2s Skipped
⬛️ SetupToolchain(rust:1.88.0) 2.7s Skipped
🟩 InstallWorkspaceDeps(rust:1.88.0, sdk) 435.5ms Passed
🟩 InstallProjectDeps(rust:1.88.0, sdk-wasm) 608.9ms Passed
🟩 RunTask(sdk:fmt-check) 910.5ms Passed
🟩 InstallProjectDeps(node:20.17.0, sdk) 8.5s Passed
And 31 more...
Expanded report
Action Time Status Info
🟩 RunTask(sdk:codegen-check) 124.7ms Passed
🟩 InstallWorkspaceDeps(node:20.17.0) 9s Passed
🟩 RunTask(sdk:lint) 48.9s Passed
🟩 RunTask(s2-docs-mcp:test) 1.9s Passed
🟩 RunTask(sdk-wasm:cache-build) 1m 53s Passed
🟩 RunTask(design-data:validate-registry) 233.4ms Passed
🟩 RunTask(tokens:buildManifest) 228.2ms Passed
🟩 RunTask(tokens:buildTokens) 1m 10s Passed
🟩 RunTask(design-data-skill:test) 2.4s Passed
🟩 RunTask(component-schemas:test) 3.9s Passed
🟩 RunTask(tokens:build) 21.7ms Passed
🟩 RunTask(sdk:build) 3m 4s Passed SLOW
🟩 RunTask(tokens:verifyLegacyRoundtrip) 1.5s Passed
🟩 RunTask(design-data:legacy-output) 944ms Passed
🟩 RunTask(tokens:verifyLegacyOutput) 786.6ms Passed
🟩 RunTask(tokens:verifyDesignDataSnapshot) 3.5s Passed
🟩 RunTask(tokens:validateDesignData) 2.1s Passed
🟩 RunTask(design-data:roundtrip-verify) 3.2s Passed
🟩 RunTask(design-data:validate-dataset) 8.7s Passed
🟩 RunTask(design-data:validate) 6.1s Passed
🟩 RunTask(markdown-generator:generate) 1.9s Passed
🟩 RunTask(tokens:test) 13.7s Passed
🟩 RunTask(sdk:test) 5m 14s Passed SLOW
🟩 RunTask(sdk-wasm:build) 3m 48s Passed SLOW
🟩 RunTask(design-data-glue:test) 3.3s Passed
🟩 RunTask(design-data-glue:ci) 14.2ms Passed
🟩 RunTask(token-naming-audit:test) 3.5s Passed
🟩 RunTask(token-naming-audit:ci) 24.2ms Passed
🟩 RunTask(design-data-agent-mcp:test) 4.1s Passed
🟩 RunTask(sdk-wasm:test) 4.9s Passed
🟩 RunTask(sdk-wasm:ci) 7.6ms Passed
Touched files
.changeset/version-metadata-ai-tools.md
.github/ci-targets.json
.moon/workspace.yml
pnpm-lock.yaml
sdk/Cargo.lock
sdk/cli/src/main.rs
sdk/core/src/primer.rs
sdk/tui/tests/snapshots/snapshots__home_view_80x24.snap
sdk/tui/tests/snapshots/snapshots__palette_open_80x24.snap
sdk/tui/tests/snapshots/snapshots__wizard_screen1_80x24.snap
sdk/wasm/src/dataset.rs
sdk/wasm/test/parity.test.js
tools/design-data-agent-mcp/skills/design-data/SKILL.md
tools/design-data-agent-mcp/src/tools/read.js
tools/design-data-agent-mcp/test/read.test.js
tools/design-data-agent-mcp/test/skill-version.test.js
tools/design-data-mcp/src/tools/design-data.js
tools/design-data-mcp/test/design-data.test.js
tools/design-data-skill/ava.config.js
tools/design-data-skill/moon.yml
tools/design-data-skill/package.json
tools/design-data-skill/skills/design-data/SKILL.md
tools/design-data-skill/test/skill-version.test.js
tools/s2-docs-mcp/ava.config.js
tools/s2-docs-mcp/moon.yml
tools/s2-docs-mcp/package.json
tools/s2-docs-mcp/skills/s2-docs/SKILL.md
tools/s2-docs-mcp/test/skill-version.test.js

GarthDB and others added 2 commits June 17, 2026 12:10
… dual source field

- Rename parseSkillVersion → parseMetadataField(skillPath, fieldName) in
  design-data-agent-mcp and s2-docs-mcp test files, matching the general
  signature already used in design-data-skill — all three helpers now share
  the same shape
- Add comment to both MCP primer handlers explaining the intentional
  redundancy between top-level source (legacy skill contract) and
  provenance.source (richer metrics object)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@GarthDB GarthDB merged commit a3b66f6 into main Jun 17, 2026
7 checks passed
@GarthDB GarthDB deleted the feat/ai-tool-version-metadata branch June 17, 2026 18:26
@GarthDB GarthDB mentioned this pull request Jun 17, 2026
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.

1 participant