Skip to content

feat(mcp): add Hub scenarios and opt-in agent evaluation - #1526

Merged
GarthDB merged 2 commits into
test/hub-mcp-content-contractsfrom
feat/hub-mcp-evaluation
Oct 1, 2026
Merged

GarthDB merged 2 commits into
test/hub-mcp-content-contractsfrom
feat/hub-mcp-evaluation

Conversation

@GarthDB

@GarthDB GarthDB commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Description

Phase two of bead spectrum-design-data-v3xu, stacked on #1525 (which builds on #1524).
Merge in that order.

Adds the private tools/design-data-mcp-eval package with 13 source-backed scenarios
covering copy, containers, typography exceptions, button behavior, unsupported
requests, conflicting guidance, and guideline/token lookup.

Offline AVA contracts run in normal CI and before publishing. A separate manually
triggered Actions workflow drives an agent through the real MCP tools using an
explicitly configured OpenAI-compatible endpoint. The workflow runs only on main
and does not gate PRs or publishing. Weekly runs require explicit opt-in.

The runner exposes read tools only, checks packaged guidelines before spending
inference requests, bounds requests/context/turns, and retains answers, tool traces,
screen results, rubrics, model and artifact provenance. Execution/provider failures
are distinct from screen regressions. Pattern/citation screens still require human
review; they are not proof of semantic correctness.

The review fix loads isolation guards from outside the artifact instead of
copying them into the Moon-staged production bundle. Guards constrain both ESM
and CommonJS resolution to the server's artifact working directory. Regressions
check rejected workspace fallback, byte-for-byte staging invariance after a real
MCP connection, and exclusion of both helpers from a subsequently packed MCPB.
The corrected public corpus and contracts from #1524/#1525 are also propagated.

Related Issue

Bead spectrum-design-data-v3xu. Depends on #1525 and #1524.
Review follow-up: spectrum-design-data-prix.

Motivation and Context

The deterministic checks catch corpus and packaging regressions without a model.
The opt-in runner exercises actual tool selection and answer synthesis while keeping
provider costs and credentials out of ordinary PR CI.

Set repository variables EVAL_ENDPOINT and EVAL_MODEL, plus EVAL_API_KEY if the
approved endpoint requires authentication. No provider or credentials have been
configured by this PR. EVAL_SCHEDULE_ENABLED=true enables weekly runs. There is no
automatic paid-provider fallback.

The spacing scenario queries property=spacing and selects raw.name.scaleIndex=300
from returned data. The current filter grammar does not accept scaleIndex, and
property-only resolve cannot resolve a legacy name like spacing-300. The fixture
preserves that actual API boundary rather than testing an unsupported query.

How Has This Been Tested?

Local macOS, Node 20.17.0, pnpm 10.17.1, Moon 2.3.3.

  • moon run :test: passed (32 tasks completed; 27 cached on the final review-fix run).
  • moon run design-data-mcp-eval:test design-data-mcp:test design-data-agent-mcp:test spectrum-hub-fetcher:test s2-docs-to-document-blocks:test: passed; all 32 evaluation tests passed, including archive packing and both import-escape regressions.
  • moon run design-data-mcp:bundle: passed after a default evaluation connection verified every current guideline without changing production staging. Inspection with unzip -Z1 confirmed that the actual production archive contains neither test guard.
  • node .github/scripts/check-ci-coverage.mjs: passed, zero uncovered tasks.
  • node tools/changeset-linter/src/cli.js check --fail-on-warnings: passed.
  • pnpm exec prettier --check tools/design-data-mcp-eval .github/workflows/hub-mcp-eval.yml .github/workflows/release.yml .github/ci-targets.json .moon/workspace.yml: passed after the commit hook.
  • Ruby YAML parsing of the workflow files: passed.

CLI integration tests use actual private MCP bundles and a local fixture inference
server. They verify tool-result feedback, report provenance, and exit codes for a
passing screen, regression, and provider outage. Further tests cover stale artifacts,
read-tool restrictions, budgets, citation/fact failures, and abstention-screen limits.

Full tests were also run separately on the updated #1524 and #1525 trees before
propagation, rather than validating only the stack tip.

No paid/live model was invoked. The new Actions workflow cannot run until the stack
is merged to main and provider configuration is supplied. Answer-quality calibration
remains a human-reviewed operational step, not a claimed validation result.

Screenshots (if appropriate):

Not applicable.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

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 updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@changeset-bot

changeset-bot Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 2ecc660

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

🎨 Token Changes Report

Tokens Changed (0)

Original Branch: main


This comment was automatically generated by the token diff tool. 🤖

@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

🧩 Component Schema Changes Report

Component Schemas Changed (0 added, 0 deleted, 62 updated)

Original Branch: main

✅ No Breaking Changes

This PR contains only non-breaking changes to component schemas.

🔄 Non-Breaking Updates

accordion

action-bar

action-button

action-group

alert-dialog

avatar-group

avatar

badge

breadcrumbs

button-group

button

calendar

cards

checkbox-group

checkbox

close-button

color-area

color-handle

color-loupe

color-slider

color-wheel

combo-box

contextual-help

date-picker

divider

drop-zone

field-label

help-text

illustrated-message

in-line-alert

link

list-view

menu

meter

number-field

picker

popover

progress-bar

progress-circle

radio-button

radio-group

search-field

segmented-control

select-box

side-navigation

slider

standard-dialog

status-light

swatch-group

swatch

switch

table

tabs

tag-group

tag

takeover-dialog

text-area

text-field

thumbnail

toast

tooltip

tree-view


This diff was generated automatically and contains only backward-compatible changes.


This comment was automatically generated by the component schema diff tool. 🤖

@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Run report for 1c636bdd

Total time: 6m 4s | Comparison time: 16m 24s | Estimated savings: 10m 20s (63.0% faster)

Action Time Status Info
⬛️ SetupProto(0.57.4) 0ms Skipped
🟩 SyncWorkspace 7.1ms Passed
🟩 SyncProject(demo) 0.2ms Passed
🟩 SyncProject(design-data-spec) 0.5ms Passed
🟩 SyncProject(sdk) 0.3ms Passed
🟩 SyncProject(sdk-wasm) 0.6ms Passed
🟩 SyncProject(root) 0.3ms Passed
🟩 SyncProject(tokens) 0.5ms Passed
🟩 SyncProject(design-data) 0.5ms Passed
🟩 SyncProject(design-data-glue) 0.5ms Passed
🟩 SyncProject(token-naming-audit) 0.5ms Passed
🟩 SyncProject(component-schemas) 0.5ms Passed
🟩 SyncProject(design-data-mcp) 1.9ms Passed
🟩 SyncProject(design-data-mcp-eval) 0.5ms Passed
🟩 SyncProject(design-data-agent-mcp) 0.8ms Passed
⬛️ SetupToolchain(node:20.17.0) 541.7ms Skipped
⬛️ SetupToolchain(rust:1.88.0) 858.1ms Skipped
⬛️ SetupToolchain(pnpm:10.17.1) 342ms Skipped
⬛️ SetupToolchain(javascript) 0ms Skipped
🟩 SetupEnvironment(javascript) 0.7ms Passed
And 44 more...
Expanded report
Action Time Status Info
⬛️ InstallDependencies(javascript) 0.1ms Skipped
⬛️ SetupEnvironment(javascript, sdk) 2.7ms Skipped
🟩 SetupEnvironment(rust, sdk) 84ms Passed
🟩 RunTask(design-data:validate-registry) 156.5ms Passed
🟩 RunTask(tokens:buildManifest) 236.2ms Passed
🟩 RunTask(s2-docs-mcp:test) 1.4s Passed
🟩 RunTask(design-data-skill:test) 1.7s Passed
🟩 RunTask(component-schemas:test) 2.7s Passed
⬛️ InstallDependencies(rust, sdk) 0.1ms Skipped
🟩 InstallDependencies(javascript, sdk) 8.1s Passed
🟩 RunTask(sdk:fmt-check) 1.7s Passed
🟩 RunTask(sdk:codegen-check) 183.2ms Passed
🟩 RunTask(sdk:lint) 1m 25s Passed
🟩 RunTask(tokens:buildTokens) 1m 31s Passed
🟩 RunTask(sdk:build) 2m 35s Passed SLOW
🟩 RunTask(demo:verify) 3m 29s Passed SLOW
🟩 RunTask(tokens:build) 43.2ms Passed
🟩 RunTask(design-data:legacy-output) 643ms Passed
🟩 RunTask(ios-override-importer:test) 6.5s Passed
🟩 RunTask(tokens:verifyDesignDataSnapshot) 625.2ms Passed
🟩 RunTask(tokens:verifyLegacyRoundtrip) 1.1s Passed
🟩 RunTask(tokens:verifyLegacyOutput) 1.2s Passed
🟩 RunTask(sdk:test-doc) 2m 12s Passed SLOW
🟩 RunTask(tokens:validateDesignData) 1.6s Passed
🟩 RunTask(design-data:roundtrip-verify) 1.3s Passed
🟩 RunTask(root:validate-platforms) 4.5s Passed
🟩 RunTask(demo:ci) 26.6ms Passed
🟩 RunTask(tokens:test) 11.1s Passed
🟩 RunTask(design-data:validate-dataset) 35.1s Passed
🟩 RunTask(sdk:test) 2m 48s Passed SLOW
🟩 RunTask(sdk-wasm:cache-build) 1m 33s Passed
🟩 RunTask(design-data:validate) 11.7s Passed
🟩 RunTask(markdown-generator:generate) 653.9ms Passed
🟩 RunTask(sdk-wasm:build) 1m 26s Passed
🟩 RunTask(design-data-glue:test) 1.8s Passed
🟩 RunTask(design-data-glue:ci) 27.2ms Passed
🟩 RunTask(token-naming-audit:test) 2s Passed
🟩 RunTask(design-data-mcp:stage) 2s Passed
🟩 RunTask(token-naming-audit:ci) 19.1ms Passed
🟩 RunTask(sdk-wasm:test) 5.2s Passed
🟩 RunTask(sdk-wasm:ci) 14.7ms Passed
🟩 RunTask(design-data-agent-mcp:test) 5.1s Passed
🟩 RunTask(design-data-mcp:test) 10.2s Passed
🟩 RunTask(design-data-mcp-eval:test) 12s Passed
Changed files
.changeset/hub-mcp-content-contracts.md
.changeset/public-spectrum-hub.md
.github/ci-targets.json
.github/workflows/hub-component-sync.yml
.github/workflows/hub-guideline-sync.yml
.github/workflows/hub-mcp-eval.yml
.github/workflows/release.yml
.gitignore
.moon/workspace.yml
docs/s2-docs/components/actions/action-bar.md
docs/s2-docs/components/actions/action-button.md
docs/s2-docs/components/actions/action-group.md
docs/s2-docs/components/actions/avatar-group.md
docs/s2-docs/components/actions/button-group.md
docs/s2-docs/components/actions/button.md
docs/s2-docs/components/actions/close-button.md
docs/s2-docs/components/actions/link.md
docs/s2-docs/components/actions/list-view.md
docs/s2-docs/components/actions/menu.md
docs/s2-docs/components/containers/cards.md
docs/s2-docs/components/containers/divider.md
docs/s2-docs/components/containers/popover.md
docs/s2-docs/components/containers/table.md
docs/s2-docs/components/data-visualization/table.md
docs/s2-docs/components/feedback/alert-dialog.md
docs/s2-docs/components/feedback/color-loupe.md
docs/s2-docs/components/feedback/contextual-help.md
docs/s2-docs/components/feedback/illustrated-message.md
docs/s2-docs/components/feedback/in-line-alert.md
docs/s2-docs/components/feedback/standard-dialog.md
docs/s2-docs/components/feedback/takeover-dialog.md
docs/s2-docs/components/feedback/toast.md
docs/s2-docs/components/feedback/tooltip.md
docs/s2-docs/components/inputs/accordion.md
docs/s2-docs/components/inputs/calendar.md
docs/s2-docs/components/inputs/checkbox-group.md
docs/s2-docs/components/inputs/checkbox.md
docs/s2-docs/components/inputs/color-area.md
docs/s2-docs/components/inputs/color-handle.md
docs/s2-docs/components/inputs/color-loupe.md
docs/s2-docs/components/inputs/color-slider.md
docs/s2-docs/components/inputs/color-wheel.md
docs/s2-docs/components/inputs/combo-box.md
docs/s2-docs/components/inputs/date-picker.md
docs/s2-docs/components/inputs/drop-zone.md
docs/s2-docs/components/inputs/field-label.md
docs/s2-docs/components/inputs/help-text.md
docs/s2-docs/components/inputs/number-field.md
docs/s2-docs/components/inputs/picker.md
docs/s2-docs/components/inputs/radio-button.md
docs/s2-docs/components/inputs/radio-group.md
docs/s2-docs/components/inputs/search-field.md
docs/s2-docs/components/inputs/segmented-control.md
docs/s2-docs/components/inputs/select-box.md
docs/s2-docs/components/inputs/slider.md
docs/s2-docs/components/inputs/swatch-group.md
docs/s2-docs/components/inputs/swatch.md
docs/s2-docs/components/inputs/switch.md
docs/s2-docs/components/inputs/tag-group.md
docs/s2-docs/components/inputs/tag.md
docs/s2-docs/components/inputs/text-area.md
docs/s2-docs/components/inputs/text-field.md
docs/s2-docs/components/inputs/thumbnail.md
docs/s2-docs/components/navigation/accordion.md
docs/s2-docs/components/navigation/avatar.md
docs/s2-docs/components/navigation/breadcrumbs.md
docs/s2-docs/components/navigation/list-view.md
docs/s2-docs/components/navigation/segmented-control.md
docs/s2-docs/components/navigation/side-navigation.md
docs/s2-docs/components/navigation/tabs.md
docs/s2-docs/components/navigation/tag.md
docs/s2-docs/components/navigation/thumbnail.md
docs/s2-docs/components/navigation/tree-view.md
docs/s2-docs/components/status/avatar-group.md
docs/s2-docs/components/status/avatar.md
docs/s2-docs/components/status/badge.md
docs/s2-docs/components/status/meter.md
docs/s2-docs/components/status/progress-bar.md
docs/s2-docs/components/status/progress-circle.md
docs/s2-docs/components/status/status-light.md
docs/s2-docs/designing/app-frame-overview.md
docs/s2-docs/designing/applying-the-type-system.md
docs/s2-docs/designing/attention-hierarchy.md
docs/s2-docs/designing/background-layers.md
docs/s2-docs/designing/bi-directionality.md
docs/s2-docs/designing/border-width.md
docs/s2-docs/designing/brand.md
docs/s2-docs/designing/cognitive.md
docs/s2-docs/designing/colors.md
docs/s2-docs/designing/component-spacing.md
docs/s2-docs/designing/containers.md
docs/s2-docs/designing/content-area-browsing-context.md
docs/s2-docs/designing/creating-bluelines-browsing-context.md
docs/s2-docs/designing/design-tokens.md
docs/s2-docs/designing/drop-shadow.md
docs/s2-docs/designing/fonts.md
docs/s2-docs/designing/grammar-and-mechanics.md
docs/s2-docs/designing/grays.md
docs/s2-docs/designing/header-browsing-context.md
docs/s2-docs/designing/icon-fundamentals.md
docs/s2-docs/designing/illustration.md
docs/s2-docs/designing/in-product-word-list.md
docs/s2-docs/designing/inclusive-design.md
docs/s2-docs/designing/inclusive-ux-writing.md
docs/s2-docs/designing/internationalization.md
docs/s2-docs/designing/layout-spacing.md
docs/s2-docs/designing/motion.md
docs/s2-docs/designing/object-styles-overview.md
docs/s2-docs/designing/rounding.md
docs/s2-docs/designing/side-navigation-browsing-context.md
docs/s2-docs/designing/spacing-overview.md
docs/s2-docs/designing/states.md
docs/s2-docs/designing/typography-overview.md
docs/s2-docs/designing/typography-system.md
docs/s2-docs/designing/using-icons.md
docs/s2-docs/designing/voice-and-tone.md
docs/s2-docs/designing/writing-about-people.md
docs/s2-docs/designing/writing-for-errors.md
docs/s2-docs/designing/writing-for-onboarding.md
docs/s2-docs/designing/writing-for-readability.md
docs/s2-docs/designing/writing-with-visuals.md
docs/s2-docs/developing/developer-overview.md
docs/s2-docs/fundamentals/principles.md
docs/s2-docs/fundamentals/whats-new.md
docs/s2-docs/support/ai-resource-guide.md
docs/s2-docs/support/contact-us.md
docs/s2-docs/support/faqs.md
docs/s2-docs/support/resources.md
docs/s2-docs/support/support.md
packages/design-data/components/accordion.json
packages/design-data/components/action-bar.json
packages/design-data/components/action-button.json
packages/design-data/components/action-group.json
packages/design-data/components/alert-banner.json
packages/design-data/components/alert-dialog.json
packages/design-data/components/avatar-group.json
packages/design-data/components/avatar.json
packages/design-data/components/badge.json
packages/design-data/components/breadcrumbs.json
packages/design-data/components/button-group.json
packages/design-data/components/button.json
packages/design-data/components/calendar.json
packages/design-data/components/cards.json
packages/design-data/components/checkbox-group.json
packages/design-data/components/checkbox.json
packages/design-data/components/close-button.json
packages/design-data/components/coach-indicator.json
packages/design-data/components/coach-mark.json
packages/design-data/components/color-area.json
packages/design-data/components/color-handle.json
packages/design-data/components/color-loupe.json
packages/design-data/components/color-slider.json
packages/design-data/components/color-wheel.json
packages/design-data/components/combo-box.json
packages/design-data/components/contextual-help.json
packages/design-data/components/date-picker.json
packages/design-data/components/divider.json
packages/design-data/components/drop-zone.json
packages/design-data/components/field-label.json
packages/design-data/components/help-text.json
packages/design-data/components/illustrated-message.json
packages/design-data/components/in-line-alert.json
packages/design-data/components/link.json
packages/design-data/components/list-view.json
packages/design-data/components/menu.json
packages/design-data/components/meter.json
packages/design-data/components/number-field.json
packages/design-data/components/picker.json
packages/design-data/components/popover.json
packages/design-data/components/progress-bar.json
packages/design-data/components/progress-circle.json
packages/design-data/components/radio-button.json
packages/design-data/components/radio-group.json
packages/design-data/components/rating.json
packages/design-data/components/search-field.json
packages/design-data/components/segmented-control.json
packages/design-data/components/select-box.json
packages/design-data/components/side-navigation.json
packages/design-data/components/slider.json
packages/design-data/components/standard-dialog.json
packages/design-data/components/status-light.json
packages/design-data/components/steplist.json
packages/design-data/components/swatch-group.json
packages/design-data/components/swatch.json
packages/design-data/components/switch.json
packages/design-data/components/table.json
packages/design-data/components/tabs.json
packages/design-data/components/tag-field.json
packages/design-data/components/tag-group.json
packages/design-data/components/tag.json
packages/design-data/components/takeover-dialog.json
packages/design-data/components/text-area.json
packages/design-data/components/text-field.json
packages/design-data/components/thumbnail.json
packages/design-data/components/toast.json
packages/design-data/components/tooltip.json
packages/design-data/components/tree-view.json
packages/design-data/guidelines/ai-resource-guide.json
packages/design-data/guidelines/app-frame-overview.json
packages/design-data/guidelines/applying-the-type-system.json
packages/design-data/guidelines/attention-hierarchy.json
packages/design-data/guidelines/background-layers.json
packages/design-data/guidelines/bi-directionality.json
packages/design-data/guidelines/border-width.json
packages/design-data/guidelines/brand.json
packages/design-data/guidelines/cognitive.json
packages/design-data/guidelines/colors.json
packages/design-data/guidelines/component-spacing.json
packages/design-data/guidelines/contact-us.json
packages/design-data/guidelines/containers.json
packages/design-data/guidelines/content-area-browsing-context.json
packages/design-data/guidelines/creating-bluelines-browsing-context.json
packages/design-data/guidelines/design-tokens.json
packages/design-data/guidelines/developer-overview.json
packages/design-data/guidelines/drop-shadow.json
packages/design-data/guidelines/faqs.json
packages/design-data/guidelines/fonts.json
packages/design-data/guidelines/grammar-and-mechanics.json
packages/design-data/guidelines/grays.json
packages/design-data/guidelines/header-browsing-context.json
packages/design-data/guidelines/icon-fundamentals.json
packages/design-data/guidelines/illustration.json
packages/design-data/guidelines/in-product-word-list.json
packages/design-data/guidelines/inclusive-design.json
packages/design-data/guidelines/inclusive-ux-writing.json
packages/design-data/guidelines/internationalization.json
packages/design-data/guidelines/layout-spacing.json
packages/design-data/guidelines/manifest.json
packages/design-data/guidelines/motion.json
packages/design-data/guidelines/object-styles-overview.json
packages/design-data/guidelines/principles.json
packages/design-data/guidelines/resources.json
packages/design-data/guidelines/rounding.json
packages/design-data/guidelines/side-navigation-browsing-context.json
packages/design-data/guidelines/spacing-overview.json
packages/design-data/guidelines/states.json
packages/design-data/guidelines/support.json
packages/design-data/guidelines/typography-overview.json
packages/design-data/guidelines/typography-system.json
packages/design-data/guidelines/using-icons.json
packages/design-data/guidelines/voice-and-tone.json
packages/design-data/guidelines/whats-new.json
packages/design-data/guidelines/writing-about-people.json
packages/design-data/guidelines/writing-for-errors.json
packages/design-data/guidelines/writing-for-onboarding.json
packages/design-data/guidelines/writing-for-readability.json
packages/design-data/guidelines/writing-with-visuals.json
pnpm-lock.yaml
sdk/core/build.rs
sdk/core/src/data_source/embedded.rs
sdk/wasm/moon.yml
tools/design-data-agent-mcp/README.md
tools/design-data-agent-mcp/moon.yml
tools/design-data-agent-mcp/test/packaged-guidelines.test.js
tools/design-data-agent-mcp/test/read.test.js
tools/design-data-mcp-eval/.gitignore
tools/design-data-mcp-eval/README.md
tools/design-data-mcp-eval/ava.config.js
tools/design-data-mcp-eval/moon.yml
tools/design-data-mcp-eval/package.json
tools/design-data-mcp-eval/src/cli.js
tools/design-data-mcp-eval/src/mcp.js
tools/design-data-mcp-eval/src/provider.js
tools/design-data-mcp-eval/src/runner.js
tools/design-data-mcp-eval/src/scenarios.js
tools/design-data-mcp-eval/test/artifact-isolation.test.js
tools/design-data-mcp-eval/test/cli.test.js
tools/design-data-mcp-eval/test/grounding.test.js
tools/design-data-mcp-eval/test/provider.test.js
tools/design-data-mcp-eval/test/runner.test.js
tools/design-data-mcp/README.md
tools/design-data-mcp/moon.yml
tools/design-data-mcp/scripts/generate-mcpb.mjs
tools/design-data-mcp/test/bundle-smoke.test.js
tools/design-data-mcp/test/ensure-bundle.test.js
tools/design-data-mcp/test/helpers/ensure-bundle.js
tools/design-data-mcp/test/helpers/isolation-loader.js
tools/design-data-mcp/test/helpers/isolation-require.cjs
tools/design-data-mcp/test/helpers/stdio-client.js
tools/s2-docs-to-document-blocks/src/blocks-builder.js
tools/s2-docs-to-document-blocks/src/cli.js
tools/s2-docs-to-document-blocks/test/blocks-builder.test.js
tools/spectrum-hub-fetcher/.remarkrc.yml
tools/spectrum-hub-fetcher/README.md
tools/spectrum-hub-fetcher/ava.config.js
tools/spectrum-hub-fetcher/moon.yml
tools/spectrum-hub-fetcher/package.json
tools/spectrum-hub-fetcher/scripts/stage-components.js
tools/spectrum-hub-fetcher/scripts/stage-docs.js
tools/spectrum-hub-fetcher/src/aem-client.js
tools/spectrum-hub-fetcher/src/cli.js
tools/spectrum-hub-fetcher/src/component-fetch.js
tools/spectrum-hub-fetcher/src/component-map.js
tools/spectrum-hub-fetcher/src/component-merge.js
tools/spectrum-hub-fetcher/src/component-sync-cli.js
tools/spectrum-hub-fetcher/src/component-sync.js
tools/spectrum-hub-fetcher/src/fragments.js
tools/spectrum-hub-fetcher/src/hub-map.js
tools/spectrum-hub-fetcher/src/markdown.js
tools/spectrum-hub-fetcher/src/sections.js
tools/spectrum-hub-fetcher/test/component-fetch.test.js
tools/spectrum-hub-fetcher/test/component-map.test.js
tools/spectrum-hub-fetcher/test/component-merge.test.js
tools/spectrum-hub-fetcher/test/component-sync.test.js
tools/spectrum-hub-fetcher/test/fixtures/foundations/visual-language/color.plain.html
tools/spectrum-hub-fetcher/test/fixtures/fragments/components/accordion/anatomy.plain.html
tools/spectrum-hub-fetcher/test/fixtures/fragments/components/accordion/behaviors.plain.html
tools/spectrum-hub-fetcher/test/fixtures/fragments/components/accordion/option-details.plain.html
tools/spectrum-hub-fetcher/test/fixtures/fragments/components/accordion/states.plain.html
tools/spectrum-hub-fetcher/test/fixtures/fragments/components/accordion/usage-guidelines.plain.html
tools/spectrum-hub-fetcher/test/fixtures/text-boundaries.plain.html
tools/spectrum-hub-fetcher/test/fixtures/web/swc/components/accordion.plain.html
tools/spectrum-hub-fetcher/test/hub-fetcher.test.js
tools/spectrum-hub-fetcher/test/hub-map.test.js
tools/spectrum-hub-fetcher/test/stage-components.test.js
tools/spectrum-hub-fetcher/test/stage-docs.test.js

@GarthDB
GarthDB added this pull request to stack #1527 October 1, 2026 20:58
test and others added 2 commits October 1, 2026 15:04
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@GarthDB
GarthDB force-pushed the feat/hub-mcp-evaluation branch from 2ecc660 to 1c636bd Compare October 1, 2026 21:18
@GarthDB
GarthDB merged commit b07a196 into main Oct 1, 2026
8 of 13 checks passed
@GarthDB
GarthDB deleted the feat/hub-mcp-evaluation branch October 1, 2026 21:27
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