54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
---
|
|
name: sap-ui5
|
|
description: >
|
|
Query the UI5 MCP server before writing SAPUI5 controllers, XML views, control
|
|
APIs, or model bindings. Triggers on views and controller extensions in app/.
|
|
paths:
|
|
- "**/app/**/*.xml"
|
|
- "**/app/**/ext/**/*.js"
|
|
- "**/app/**/ext/**/*.ts"
|
|
- "**/webapp/**/*.xml"
|
|
- "**/webapp/**/controller/**/*.js"
|
|
metadata:
|
|
source: SAP-samples/cap-agentic-engineered
|
|
adapted: MCP tool names mapped to this environment (mcp__ui5-mcp-server__*)
|
|
---
|
|
|
|
# UI5 MCP-First Development
|
|
|
|
Before writing, modifying, debugging, or fixing SAPUI5 controllers, XML views,
|
|
or control bindings, you MUST query the UI5 MCP server and apply its guidance.
|
|
|
|
## Tools
|
|
|
|
Use `mcp__ui5-mcp-server__*` tools — primarily `mcp__ui5-mcp-server__get_api_reference`,
|
|
`mcp__ui5-mcp-server__get_guidelines`, `mcp__ui5-mcp-server__run_ui5_linter`, and
|
|
`mcp__ui5-mcp-server__get_project_info`.
|
|
|
|
> Note: in this environment the same UI5 tooling is also exposed under the
|
|
> `mcp__plugin_sapui5_ui5-tooling__*` namespace — either prefix works.
|
|
|
|
## Workflow
|
|
|
|
1. **Query before coding** — call `mcp__ui5-mcp-server__get_api_reference` for control APIs, or `mcp__ui5-mcp-server__get_guidelines` for project-level patterns
|
|
2. **Trust MCP over training knowledge** — if guidance conflicts with what you know, follow MCP
|
|
3. **Run the linter after changes** — call `mcp__ui5-mcp-server__run_ui5_linter` to catch deprecated APIs
|
|
4. **Prefer the simplest pattern** when MCP returns multiple valid approaches
|
|
|
|
## Scope
|
|
|
|
This skill covers:
|
|
- XML views with `sap.m`, `sap.f`, `sap.uxap` namespaces
|
|
- Controller extensions (`app/**/ext/controller/*.js`) and freestyle controllers (`webapp/**/controller/*.js`)
|
|
- Model bindings, formatters, event handlers
|
|
- Control APIs and property configuration
|
|
|
|
## UI5 Code Standards
|
|
|
|
- XML views only — no JavaScript views
|
|
- `sap.ui.define` for all modules — no globals
|
|
- Async loading: `data-sap-ui-async="true"`
|
|
- i18n for all user-facing text
|
|
- No deprecated APIs (`jQuery.sap.*`, sync loading, `sap.ui.getCore()`)
|
|
- Fiori Elements controller extensions must be plain objects (not ES6 classes) — `this` refers to the `ExtensionAPI` instance
|