Ketch
1broseidon/ketch
Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…
Add analytical chart (chart + table hybrid) to SAP Fiori Elements List Report using aggregated data.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-analytical-chart -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-analytical-chart --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart .claude/skills/sap-fiori-analytical-chart && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sap-fiori-analytical-chart" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart into .claude/skills/sap-fiori-analytical-chart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-analytical-chart", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chartType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-analytical-chart -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-analytical-chart --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart .agents/skills/sap-fiori-analytical-chart && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sap-fiori-analytical-chart" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart into .agents/skills/sap-fiori-analytical-chart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-analytical-chart", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-analytical-chart -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-analytical-chart --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart .cursor/skills/sap-fiori-analytical-chart && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sap-fiori-analytical-chart" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart into .cursor/skills/sap-fiori-analytical-chart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-analytical-chart", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/SAP/open-ux-tools.git --path plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-analytical-chart -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-analytical-chart --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart .gemini/skills/sap-fiori-analytical-chart && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sap-fiori-analytical-chart" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart into .gemini/skills/sap-fiori-analytical-chart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-analytical-chart", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install SAP/open-ux-tools sap-fiori-analytical-chartInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add SAP/open-ux-tools --skill sap-fiori-analytical-chart -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart .github/skills/sap-fiori-analytical-chart && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sap-fiori-analytical-chart" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart into .github/skills/sap-fiori-analytical-chart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-analytical-chart", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-analytical-chart -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-analytical-chart --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart .opencode/skills/sap-fiori-analytical-chart && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sap-fiori-analytical-chart" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart into .opencode/skills/sap-fiori-analytical-chart/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-analytical-chart", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sap-fiori-analytical-chartAdd analytical chart (chart + table hybrid) to SAP Fiori Elements List Report using aggregated data.
Sap Fiori Analytical Chart is an agent skill from SAP/open-ux-tools, published by the product's own GitHub organization. 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.
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Data visualization. It works with SAP, Visual Studio Code and Model Context Protocol. The repository describes itself as: Enable community collaboration to jointly promote and facilitate best in class tooling capabilities. The licence is Apache-2.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ddeddbe. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
ui5.sap.comhelp.sap.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sap Fiori Analytical Chart loads about 3.5k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 1,133 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from SAP/open-ux-tools at commit ddeddbe, republished under its Apache-2.0 licence (© SAP). 1,133 words, ~3,470 tokens.
.claude/skills/sap-fiori-analytical-chart/SKILL.md (or your agent's skills folder).Add analytical chart + table (hybrid view) to visualize aggregated data.
CAP Projects:
ABAP RAP Projects:
STOP and ASK the user for ALL of these inputs if ANY are missing from the prompt:
DO NOT proceed with implementation until all inputs are confirmed.
@Aggregation.ApplySupported: {
Transformations: ['aggregate','groupby'],
AggregatableProperties: [{Property: Amount}],
GroupableProperties: [Category]
}Analytics.AggregatedProperty #Amount_avg: {
Name: 'Amount_avg',
AggregatableProperty: Amount,
AggregationMethod: 'average',
![@Common.Label]: 'Average Amount'
}Valid AggregationMethod values (lowercase string):
sum - Sum of the non-null valuesmin - Smallest of the non-null valuesmax - Largest of the non-null valuesaverage - Sum of non-null values divided by count of non-null valuescountdistinct - Count of distinct values, omitting null values⚠️ CRITICAL: Must be a lowercase string (e.g., 'sum'), NOT an enum (e.g., #SUM). Using an enum will cause SQL generation errors.
UI.Chart #AnalyticalChart: {
$Type: 'UI.ChartDefinitionType',
Title: 'Chart Title',
ChartType: #Column,
Dimensions: [Category],
DynamicMeasures: ['@Analytics.AggregatedProperty#Amount_avg'],
MeasureAttributes: [{
$Type: 'UI.ChartMeasureAttributeType',
DynamicMeasure: '@Analytics.AggregatedProperty#Amount_avg',
Role: #Axis1
}],
DimensionAttributes: [{
$Type: 'UI.ChartDimensionAttributeType',
Dimension: Category,
Role: #Category
}]
},
UI.PresentationVariant #ChartView: {
$Type: 'UI.PresentationVariantType',
Text: 'Chart View',
Visualizations: ['@UI.Chart#AnalyticalChart']
},
UI.PresentationVariant #TableView: {
$Type: 'UI.PresentationVariantType',
Text: 'Table View',
Visualizations: ['@UI.LineItem']
}✅ Uses DynamicMeasures
Missing ANY of these will cause the app to fail/not load:
@OData.applySupportedForAggregation: #FULL on projection view (ZC_*)@Aggregation.default: #AVG (or #SUM, #MIN, #MAX) on measure field@UI.chart annotation with correct qualifier in metadata extensiontargets.<ListReport>.options.settings.views.paths configuration⚠️ CRITICAL: @OData.applySupportedForAggregation annotation is MANDATORY
WITHOUT this annotation:
Placement:
TRANSACTIONAL_QUERY contractCORRECT Example:
// MANDATORY! Must be present!
@OData.applySupportedForAggregation: #FULL
define root view entity ZC_ENTITY
provider contract TRANSACTIONAL_QUERY
as projection on ZR_ENTITY
{
@Aggregation.default: #AVG // Specify aggregation method for measure
Amount;
Category; // Dimension field (no aggregation annotation needed)
}WRONG Example:
// ❌ WRONG - Don't put on interface view
// WRONG PLACE!
@OData.applySupportedForAggregation: #FULL
define root view entity ZR_ENTITY
as select from TABLE⚠️ CRITICAL: @UI.chart and @UI.presentationVariant are ENTITY-LEVEL (header) annotations.
Place them in the header block — BEFORE annotate view ZC_ENTITY with (alongside @UI.headerInfo.*), NOT inside the { ... } field block and NOT on a field (e.g. the dimension field).
Attaching @UI.chart to a field fails activation with: Annotation 'UI.chart.qualifier' used at wrong position (wrong scope).
// ↓↓↓ HEADER SCOPE: these go BEFORE `annotate view`, never on a field ↓↓↓
@UI.chart: [{
qualifier: 'AnalyticalChart',
title: 'Chart Title',
description: 'Chart description',
chartType: #COLUMN,
dimensions: ['Category'],
measures: ['Amount'],
dimensionAttributes: [{
dimension: 'Category',
role: #CATEGORY
}],
measureAttributes: [{
measure: 'Amount',
role: #AXIS_1
}]
}]
@UI.presentationVariant: [{
qualifier: 'ChartView',
text: 'Chart View',
visualizations: [{
type: #AS_CHART,
qualifier: 'AnalyticalChart'
}]
},
{
qualifier: 'TableView',
text: 'Table View',
visualizations: [{
type: #AS_LINEITEM
}]
}]
annotate view ZC_ENTITY with
{
// Other field annotations...
@EndUserText.label: 'Amount'
Amount;
@EndUserText.label: 'Category'
Category;
}After activating both DDLS and DDLX, verify the changes are live:
⚠️ IMPORTANT: DDLS and DDLX are Separate Objects
The projection view (DDLS file) and metadata extension (DDLX file) are separate ABAP development objects that happen to share the same entity name.
Key points:
Activation:
Verification Steps:
Verify Activation Status:
Check OData $metadata:
<service-url>/$metadata<Annotation Term="UI.Chart" Qualifier="AnalyticalChart"><Annotation Term="UI.PresentationVariant" Qualifier="ChartView">Manifest:
"targets": {
"<ListReport>": { // Replace with your actual List Report target name
"type": "Component",
"name": "sap.fe.templates.ListReport",
"options": {
"settings": {
"contextPath": "/<YourEntity>", // Replace with your entity set path
"views": {
"paths": [
{
"primary": [
{ "annotationPath": "com.sap.vocabularies.UI.v1.Chart#AnalyticalChart" }
],
"secondary": [
{ "annotationPath": "com.sap.vocabularies.UI.v1.LineItem" }
],
"defaultPath": "both"
}
]
}
}
}
}
}Manifest:
"targets": {
"<ListReport>": { // Replace with your actual List Report target name
"type": "Component",
"name": "sap.fe.templates.ListReport",
"options": {
"settings": {
"contextPath": "/<YourEntity>", // Replace with your entity set path
"views": {
"paths": [
{
"key": "ChartView",
"annotationPath": "com.sap.vocabularies.UI.v1.PresentationVariant#ChartView"
},
{
"key": "TableView",
"annotationPath": "com.sap.vocabularies.UI.v1.PresentationVariant#TableView"
}
]
}
}
}
}
}Refer to the Application Preview Guidelines section in the sap-fiori-app-development skill for detailed testing instructions, including:
Follow this sequence to avoid errors:
Modify Projection View (ZC_ENTITY) - DDLS file
@OData.applySupportedForAggregation: #FULL at top@Aggregation.default: #AVG to measure fieldModify Metadata Extension (ZC_ENTITY) - DDLX file
@UI.chart annotation with qualifier@UI.presentationVariant annotationsVerify Annotations are Active (see Step 3 in ABAP RAP Implementation section above)
Update Fiori App Manifest
views.paths under targets.<ListReport>.options.settings (NOT inside controlConfiguration)Test
npm start (fetches live metadata - no republishing needed)Full error message:
Annotation Path for the primary visualization com.sap.vocabularies.UI.v1.Chart#AnalyticalChart not foundCause: The metadata extension (DDLX) is NOT active, so the @UI.chart annotation is not exposed in the OData $metadata.
Solution:
<service-url>/$metadata (search for Chart#AnalyticalChart)npm startNote: Even if you edited the DDLX, it won't take effect until explicitly activated. The DDLS and DDLX are separate objects.
Cause 1: Missing @OData.applySupportedForAggregation: #FULL
Cause 2: Annotation on wrong view
Cause 3: Measure field not numeric
Cause 4: Wrong qualifier in manifest
@UI.chart: [{ qualifier: 'AnalyticalChart' }]Cause 5: Missing @Aggregation.default on measure
@Aggregation.default: #AVG (or #SUM, #MIN, #MAX) to measure fieldCause 6: DDLX not activated (see console error above)
Cause: Wrong aggregation method
@Aggregation.default value (#AVG, #SUM, #MIN, #MAX)CAP:
RAP:
General:
RAP-Specific:
@OData.applySupportedForAggregation: #FULL → App won't load@Aggregation.default on measure fieldTRANSACTIONAL_QUERY)PresentationVariant for separate view tabs (chart or table)© SAP, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart of SAP/open-ux-tools.
Open the folder on GitHubat commit ddeddbe
Sap Fiori Analytical Chart next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sap Fiori Analytical Chart this skillSAP/open-ux-tools | 158 | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Ketch1broseidon/ketch | 702 | 1 repos | ~3.9k | Automated safety check: Pass | MIT | |
| Erd Studio Setupliam-machine/erd-studio | 165 | — | ~8.6k | Automated safety check: Pass | Custom licence | |
| Noteworthysihooleebd/noteworthy | 120 | — | ~2k | Automated safety check: Pass | MIT | |
| Figure Libraryxuzhougeng/ScientificFigureLibrary | 110 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Save Research Notebooknapjon/krisk | 117 | — | ~702 | Automated safety check: Pass | BSD-3-Clause |
1broseidon/ketch
Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…
liam-machine/erd-studio
Friendly, step-by-step setup for ERD Studio in an existing dbt project, for people who may be new to dbt or data modelling.
sihooleebd/noteworthy
Write and edit Noteworthy documents — a Typst framework for textbooks, with blocks (definition/theorem/example/solution), 2D and 3D canvases, geometry, plotting, and live Yjs collaboration.
xuzhougeng/ScientificFigureLibrary
Search, browse, select, import, review, publish, and materialize reusable scientific-figure assets through Scientific Figure Library.
napjon/krisk
Convert a completed data-analysis conversation into evidence-backed, reproducible living research through the Krisk MCP server.
Kilo-Org/kilo-marketplace
Creates, inspects, edits and runs Jupyter notebooks, scaffolding experiment or tutorial notebooks from templates and preferring a Jupyter MCP server over raw JSON edits.
SAP/open-ux-tools
Develop a new ESLint rule for @sap-ux/eslint-plugin-fiori-tools.
SAP/open-ux-tools
A skill your agent uses 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…
SAP/open-ux-tools
Sync odata-vocabularies package — update all vocabulary resource files to their latest published versions, and optionally add a new vocabulary given its JSON URL.
SAP/open-ux-tools
Add visual filters (chart-based) to SAP Fiori Elements filter bar or value help using CAP or ABAP RAP.
SAP/open-ux-tools
Guidelines for SAP Fiori app development for CAP and standalone projects.
SAP/open-ux-tools
Configure, migrate, or run ESLint with @sap-ux/eslint-plugin-fiori-tools in SAP Fiori projects (standalone or CAP).
Categories
Add analytical chart (chart + table hybrid) to SAP Fiori Elements List Report using aggregated data. Sap Fiori Analytical Chart is an agent skill from SAP/open-ux-tools, published by the product's own GitHub organization. Add analytical chart (chart + table hybrid) to SAP Fiori Elements List Report using aggregated data.
Sap Fiori Analytical Chart fits situations like: asked to add a chart section; aggregated data visualization; analytical List Page chart to a List Report.
Run `npx skills add SAP/open-ux-tools --skill sap-fiori-analytical-chart -a claude-code`. Or copy the skill folder (plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart in SAP/open-ux-tools) into .claude/skills/sap-fiori-analytical-chart in your project. Claude Code loads it when a task matches its description.
Run `npx skills add SAP/open-ux-tools --skill sap-fiori-analytical-chart -a codex`. Or copy the skill folder (plugins-coding-agents/fiori/skills/sap-fiori-analytical-chart in SAP/open-ux-tools) into .agents/skills/sap-fiori-analytical-chart in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SAP/open-ux-tools --skill sap-fiori-analytical-chart -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sap-fiori-analytical-chart, .gemini/skills/sap-fiori-analytical-chart, .github/skills/sap-fiori-analytical-chart and .opencode/skills/sap-fiori-analytical-chart in your project.
Going by SKILL.md and its folder, Sap Fiori Analytical Chart needs the command-line tools its instructions call (npm).
SKILL.md names 2 domains. As links in the text: ui5.sap.com and help.sap.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Sap Fiori Analytical Chart is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Sap Fiori Analytical Chart: Ketch (1broseidon/ketch, 702 stars), Erd Studio Setup (liam-machine/erd-studio, 165 stars), Noteworthy (sihooleebd/noteworthy, 120 stars) and Figure Library (xuzhougeng/ScientificFigureLibrary, 110 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
SAP (a GitHub organization, an official publisher) maintains it in SAP/open-ux-tools, which has 158 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 10, 2026.
Source: SAP/open-ux-tools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.