MCPInstall

odata-vocabularies-sync

Sync odata-vocabularies package — update all vocabulary resource files to their latest published versions, and optionally add a new vocabulary given its JSON URL. Use when asked to update vocabularies, refresh vocabulary resources, or add a new vocabulary to @sap-ux/odata-vocabularies.

Installs
386
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/sap/open-ux-tools --skill odata-vocabularies-sync
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads odata-vocabularies-sync automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

odata-vocabularies-sync

Keeps the packages/odata-vocabularies package in sync with the upstream OData vocabulary sources.

  • No argument — update all existing vocabulary resource files to their latest published versions.
  • With a URL argument — register and add the new vocabulary first, then update everything.

All file edits are relative to packages/odata-vocabularies/.

Note: com.sap.cds.vocabularies.* files (ObjectModel, AnalyticsDetails) are hand-crafted and not managed by this skill. Do not attempt to add them via a URL.


Step 1 — Add a new vocabulary (only when a URL argument is provided)

1a. Fetch and inspect the vocabulary JSON

Fetch the JSON at the provided URL (must end in .json — XML URLs are not supported by the update tool). Extract:

  • namespace — the key of the top-level schema object (e.g. Org.OData.NewThing.V1 or com.sap.vocabularies.NewThing.v1)
  • alias — the value of $Alias inside that schema object (e.g. NewThing)

Determine the vocabulary family from the namespace:

  • Starts with Org.OData. → OASIS vocabulary
  • Starts with com.sap.vocabularies. → SAP vocabulary
  • Starts with com.sap.cds. → CDS vocabulary — stop. These files are hand-crafted and cannot be added via this skill. Explain this to the user.
  • Anything else → stop and ask the user to confirm the family before proceeding.

1b. Edit tools/update.ts

Add an entry to SUPPORTED_VOCABULARIES in alphabetical order within the existing entries:

'<namespace>': {
    uri: '<the provided URL>'
},

Note: The entry can include update: false to pin the vocabulary and exclude it from future automatic updates (e.g. com.sap.vocabularies.CDS.v1 uses this because it is hand-maintained). Omit the field for normal auto-updating behaviour.

1c. Edit src/resources/index.ts

Make all six additions. All six are mandatory — missing any one will cause a runtime error.

  1. Import — insert alphabetically by alias in the single import block (OASIS and SAP imports are interleaved by alias, not grouped by family):

    import <Alias> from './<namespace>.js';
    

    Use the $Alias value from the JSON as the import identifier. Exception: if the alias is a reserved JS keyword or built-in (e.g. JSON, Map, Error), prefix it to form a valid identifier (e.g. JSON → ODataJSON). Also check existing imports for precedent — some aliases are shortened for brevity (e.g. Authorization → Auth).

  2. Namespace union type — add to the matching family type:

    • OASIS → OasisVocabularyNamespace
    • SAP → SapVocabularyNamespace
    | '<namespace>'
    
  3. Alias union type — add to the matching family type:

    • OASIS → OasisVocabularyAlias
    • SAP → SapVocabularyAlias
    | '<Alias>'
    
  4. NAMESPACE_TO_ALIAS Map:

    ['<namespace>', '<Alias>'],
    
  5. ALIAS_TO_NAMESPACE Map:

    ['<Alias>', '<namespace>'],
    
  6. vocabularies Record:

    '<namespace>': <Alias>,
    

1d. Edit src/loader.ts

Add the namespace to SUPPORTED_VOCABULARY_NAMESPACES in alphabetical order within its family block:

'<namespace>',

1e. Edit README.md

Add the alias to the correct bullet list in the "Supported Vocabularies" section, in alphabetical order:

  • OASIS namespace → OASIS Vocabularies list
  • SAP namespace → SAP Vocabularies list
* <Alias>

Step 2 — Run the update tool

This fetches the latest JSON for every registered vocabulary (including any newly added one) and regenerates all src/resources/*.ts resource files.

Run from the repo root:

pnpm --filter @sap-ux/odata-vocabularies update:vocabularies

If the tool fails, stop and report the full error output before proceeding.


Step 3 — Audit and fix README

Cross-check the README against the registered vocabularies and add any missing entries.

  1. Read src/resources/index.ts and collect all namespaces from NAMESPACE_TO_ALIAS, split by family:

    • OASIS: namespaces starting with Org.OData.
    • SAP: namespaces starting with com.sap.vocabularies. excluding com.sap.vocabularies.CDS.v1
    • Skip all com.sap.cds. namespaces (hand-crafted, not listed in README)
  2. For each collected namespace, read the corresponding generated resource file src/resources/<namespace>.ts and extract the $Alias value — this is the authoritative published alias used as the display name in README.

  3. Read README.md and find the two bullet lists under "Supported Vocabularies":

    • The OASIS Vocabularies list
    • The SAP Vocabularies list
  4. For each alias not yet present in the correct list, insert it in alphabetical order.

If the README is already complete, do nothing.


Step 4 — Run tests and update snapshots

pnpm --filter @sap-ux/odata-vocabularies test -- -u

Report any test failures that are not snapshot-related. Snapshot updates are expected only when vocabulary content has actually changed (either upstream drift detected by the update tool, or a newly added vocabulary). If snapshots change beyond what was updated, inspect the diff before accepting — it may indicate a regression.


Step 5 — Report

Summarise what was done:

  • If a new vocabulary was added: confirm the namespace, alias, family, and all files changed.
  • If any README entries were missing and added, list them.
  • List vocabulary resource files regenerated by the update tool.
  • Confirm tests pass.

FAQ

What does the odata-vocabularies-sync skill do?

Sync odata-vocabularies package — update all vocabulary resource files to their latest published versions, and optionally add a new vocabulary given its JSON URL. Use when asked to update vocabularies, refresh vocabulary resources, or add a new vocabulary to @sap-ux/odata-vocabularies.

How do I install odata-vocabularies-sync?

Run npx skills add https://github.com/sap/open-ux-tools --skill odata-vocabularies-sync in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/odata-vocabularies-sync/ (personal) or .claude/skills/odata-vocabularies-sync/ (project).

Which AI agents can use odata-vocabularies-sync?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is odata-vocabularies-sync safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains odata-vocabularies-sync?

It is published by sap in sap/open-ux-tools. It has 386 recorded installs.

More from sap/open-ux-tools

View all →

Add visual filters (chart-based) to SAP Fiori Elements filter bar or value help using CAP or ABAP RAP. Use when asked to add chart filters, bar chart selectors, or visual filter bars to a Fiori Elements application.

Frontend & Design604 installs

sap-fiori-app-development

sap/open-ux-tools

Guidelines for SAP Fiori app development for CAP and standalone projects. Use when creating or modifying SAP Fiori Elements applications, adding a List Report, Object Page, or Worklist, or connecting a Fiori app to a CAP service or OData endpoint.

Frontend & Design597 installs

Add analytical chart (chart + table hybrid) to SAP Fiori Elements List Report using aggregated data. Supports CAP and ABAP RAP (OData V4). Use when asked to add a chart section, aggregated data visualization, or Analytical List Page chart to a List Report.

Docs & Writing593 installs

sap-fiori-create-cli

sap/open-ux-tools

Invokes the @sap-ux/create CLI — generate, add, convert, remove, update, change, list, get commands for SAP Fiori projects. Use when asked to run sap-ux, invoke create CLI, add config to a project, generate adaptation-project, or use any sap-ux/create subcommand. Full options for each command group are in the linked references.

Frontend & Design586 installs

sap-fiori-eslint-plugin

sap/open-ux-tools

Configure, migrate, or run ESLint with @sap-ux/eslint-plugin-fiori-tools in SAP Fiori projects (standalone or CAP). Use when ESLint is missing and the user wants to add it or add code quality checks; when an existing .eslintrc or eslint@8 config needs upgrading to ESLint 9 flat config; when the user wants to run linting, fix lint errors, or ESLint is broken or not working; or when the user wants to see the application issues or UX consistency issues for a specific app — e.g. "show application issue(s) for my project ", "show application issues for app X", "UX consistency issues", "issues consistent with Page Map", "same issues as Application Information".

Frontend & Design586 installs

Use this skill when writing, fixing, extending, or reviewing OPA5 integration tests for SAP Fiori Elements applications - whether the app uses OData V4 (sap.fe.test library) or OData V2 (fioriElementsTestLibrary). Triggers on any request involving OPA5 journeys, page objects, JourneyRunner setup, test structure, mock data, or debugging test failures in a SAP Fiori Elements project generated by SAP Fiori tools. Use even when the user says "write integration tests" or "add an OPA journey" without specifying the library, as long as the project context is SAP Fiori Elements. Not applicable to freestyle UI5 apps.

Testing & QA553 installs

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs