
sapui5-linter
Use this skill when working with the UI5 Linter (@ui5/linter) for static code analysis of SAPUI5/OpenUI5 applications and libraries. Covers setup, configuring linting rules, running the linter to detect deprecated APIs, global variable usage, CSP violations, and manifest issues. Supports autofix for deprecated API usage, global references, event handlers, and manifest properties. Includes CI/CD integration, pre-commit hooks, and UI5 2.x migration preparation.
- Installs
- 696
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/secondsky/sap-skills --skill sapui5-linter- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads sapui5-linter automatically when relevant.
- 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.
SAPUI5 Linter Skill
Related Skills
- sap-dependency-security: Use when hardening dependency management for UI5 linting toolchain upgrades and plugin/toolchain lockfile controls
When to Use This Skill
Use this skill when adding or running @ui5/linter, configuring UI5 lint rules, preparing UI5 2.x migrations, autofixing deprecated APIs/globals/manifest issues, producing CI reports, or troubleshooting ui5lint parsing, performance, or configuration behavior.
Table of Contents
Overview
The UI5 Linter (@ui5/linter) is a static code analysis tool designed specifically for SAPUI5 and OpenUI5 projects. It helps developers identify compatibility issues, deprecated APIs, security concerns, and best practice violations before upgrading to UI5 2.x.
Key Capabilities:
- ✅ Detects 19 categories of issues including deprecated APIs, global usage, and CSP violations
- ✅ Automatic fixes for common issues (no-globals, no-deprecated-api, manifest properties)
- ✅ Supports JavaScript, TypeScript, XML, JSON, HTML, and YAML files
- ✅ Configurable ignore patterns and file targeting
- ✅ Multiple output formats: stylish, JSON, Markdown, HTML
- ✅ Fast performance: 1-40s depending on project size
Current Version: 1.22.0 (verified via npm on 2026-06-14) Official Repository: https://github.com/UI5/linter
Quick Start
Prerequisites
Node.js: v20.11.x, v22.0.0, or higher npm: v8.0.0 or higher
Verify prerequisites:
node --version # Should be v20.11+ or v22+
npm --version # Should be v8+
Installation
Global Installation (recommended for CLI usage):
npm install --global @ui5/linter
Local Installation (recommended for project integration):
npm install --save-dev @ui5/linter
Verify installation:
ui5lint --version # Should output: 1.22.0 or higher
Basic Usage
Run linter from project root:
# Lint entire project
ui5lint
# Lint specific files or directories
ui5lint "webapp/**/*.js"
ui5lint "webapp/controller/" "webapp/view/"
# Show detailed information about findings
ui5lint --details
Common Workflows
Development Workflow:
# 1. Check for issues with details
ui5lint --details
# 2. Preview automatic fixes
UI5LINT_FIX_DRY_RUN=true ui5lint --fix
# 3. Apply fixes
ui5lint --fix
# 4. Review changes
git diff
# 5. Verify fixes worked
ui5lint --details
Configuration
Configuration File Setup
Create ui5lint.config.{js|mjs|cjs}:
module.exports = {
rules: {
// Recommended rules
"no-deprecated-api": "error",
"no-globals": "error",
"no-ambiguous-event-handler": "error",
"no-outdated-manifest-version": "error"
},
exclude: [
"dist/**",
"node_modules/**",
"test/**/*.{spec,js,ts}"
]
};
Common Configuration Patterns
// Strict for production, relaxed for development
const isProduction = process.env.NODE_ENV === 'production';
module.exports = {
rules: {
"no-deprecated-api": isProduction ? "error" : "warn",
"no-globals": isProduction ? "error" : "warn"
},
exclude: [
"legacy/**/*",
"**/*.min.js"
]
};
CLI Usage
Essential Commands
# Basic linting
ui5lint
# With detailed output
ui5lint --details
# Fix auto-fixable issues
ui5lint --fix
# JSON output for CI/CD
ui5lint --format json
# HTML report for documentation
ui5lint --format html --details
# Performance monitoring
ui5lint --perf
Linting Rules Overview
Async & Modern Patterns
- async-component-flags: Validates async component configuration
- prefer-test-starter: Validates Test Starter implementation
Security
- csp-unsafe-inline-script: Detects unsafe inline scripts
Event Handlers
- no-ambiguous-event-handler: Ensures proper event handler notation ✅ Autofix
Deprecation Detection (7 Rules)
- no-deprecated-api: Detects deprecated APIs ✅
- no-deprecated-component: Finds deprecated component dependencies
- no-deprecated-control-renderer: Validates control renderer patterns
- no-deprecated-library: Checks deprecated libraries in manifest
Global Usage
- no-globals: Identifies global variable usage ✅ Autofix
- no-implicit-globals: Detects implicit global access
Error Reporting
- parsing-error: Reports syntax/parsing errors
- autofix-error: Reports autofix failures
API Usage
- ui5-class-declaration: Verifies UI5 class declaration patterns (TypeScript)
- unsupported-api-usage: Ensures proper API usage
Manifest Modernization (3 Rules)
- no-outdated-manifest-version: Requires Manifest Version 2
- no-removed-manifest-property: Identifies incompatible properties ✅ Autofix
Complete rules reference**: See references/rules-complete.md
Integration with Development Workflows
package.json Scripts
{
"scripts": {
"lint": "ui5lint",
"lint:fix": "ui5lint --fix",
"lint:details": "ui5lint --details",
"lint:ci": "ui5lint --quiet --format json > lint-results.json",
"lint:report": "ui5lint --format html --details > lint-report.html"
},
"devDependencies": {
"@ui5/linter": "^1.22.0"
}
}
Common Scenarios
Scenario 1: New UI5 Project Setup
- Install linter
- Create configuration (use template)
- Add npm scripts to package.json
- Run initial lint
- Fix auto-fixable issues
- Review remaining issues
Scenario 2: Preparing for UI5 2.x Migration
- Run linter to find all issues
- Focus on critical issues first
- Apply automatic fixes
- Review autofix limitations document
- Manually fix unsupported APIs
- Address Core API issues (#619, #620)
- Update manifest to v2
- Fix no-outdated-manifest-version, no-removed-manifest-property issues
- Verify all issues resolved
Troubleshooting
Common Issues
Symptom: Linter reports parsing errors Solution: Check for syntax errors in config files
Symptom: Autofix doesn't work
Solution: Check autofix limitations in references/autofix-complete.md
Symptom: Performance issues on large codebase Solution: Add ignore patterns, use targeted linting
Known Limitations
- Cannot convert synchronous to async patterns
- Limited Core/Configuration API autofix (~50 APIs)
- jQuery.sap API support limited to basic methods
- Node.js modules not automatically discovered
Best Practices
1. Run Linter Early and Often
- Add pre-commit hook for instant feedback
- See templates/husky-pre-commit.template
2. Use Configuration File for Persistent Settings
- Environment-specific configurations
- Project-wide ignore patterns
3. Fix Issues Incrementally
- Fix errors first
- Then fix warnings
- Review and test after each step
4. Document Suppressed Rules
- Document team-wide suppressions with explanations
- Use sparingly and with clear justifications
5. Integrate with CI/CD
- Fail builds on errors, allow warnings
- Generate reports for stakeholders
6. Monitor Performance
- Track linting performance over time
Reference Documentation
External Resources
- Official Repository: https://github.com/UI5/linter
- Issue Reporting: https://github.com/UI5/linter/issues
- Discussions: https://github.com/UI5/linter/discussions
- Chat Support: https://discord.gg/sapui5
- SAP Community: https://community.sap.com/tags/ui5
Detailed Documentation
- Complete Rules Reference:
references/rules-complete.md - Autofix Capabilities:
references/autofix-complete.md - Performance Guide:
references/performance.md - Troubleshooting Guide:
references/support-and-community.md - Contributing Guide:
references/contributing.md
Templates
- Configuration Template:
templates/ui5lint.config.mjs - package.json Template:
templates/package.json.template - Husky Pre-commit:
templates/husky-pre-commit.template
Support and Updates
- Version: 1.22.0 (Current)
- Release Notes: Available in GitHub releases
- Roadmap: Documented in GitHub Issues and Discussions
- Email: security@sap.com
- Community: Discord #sapui5 channel
Bundled Resources
Reference Documentation
references/rules-complete.md- Complete reference for all 19 linting rulesreferences/autofix-complete.md- Detailed autofix capabilities and limitationsreferences/performance.md- Performance optimization guidereferences/support-and-community.md- Support channels and community resourcesreferences/contributing.md- Contributing guidelines
Templates
templates/ui5lint.config.mjs- Configuration templatetemplates/package.json.template- Package.json templatetemplates/husky-pre-commit.template- Pre-commit hook template
Last Updated: 2026-06-14 | Version: 2.4.1 Previous Restructure Version: 1.0.1 | Lines Reduced: 376 (from 827) Next Review: 2026-02-25
FAQ
What does the sapui5-linter skill do?
Use this skill when working with the UI5 Linter (@ui5/linter) for static code analysis of SAPUI5/OpenUI5 applications and libraries. Covers setup, configuring linting rules, running the linter to detect deprecated APIs, global variable usage, CSP violations, and manifest issues. Supports autofix for deprecated API usage, global references, event handlers, and manifest properties. Includes CI/CD integration, pre-commit hooks, and UI5 2.x migration preparation.
How do I install sapui5-linter?
Run npx skills add https://github.com/secondsky/sap-skills --skill sapui5-linter 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/sapui5-linter/ (personal) or .claude/skills/sapui5-linter/ (project).
Which AI agents can use sapui5-linter?
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 sapui5-linter 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 sapui5-linter?
It is published by secondsky in secondsky/sap-skills. It has 696 recorded installs.
More from secondsky/sap-skills
sap-abap
secondsky/sap-skills
Comprehensive ABAP development skill for SAP systems. Use when writing ABAP code, working with internal tables, structures, ABAP SQL, object-oriented programming, RAP (RESTful Application Programming Model), CDS views, EML statements, ABAP Cloud development, string processing, dynamic programming, RTTI/RTTC, field symbols, data references, exception handling, or ABAP unit testing. Covers both classic ABAP and modern ABAP for Cloud Development patterns.
sap-fiori-tools
secondsky/sap-skills
Develops SAP Fiori applications using SAP Fiori tools extensions for VS Code and SAP Business Application Studio. Use when: generating Fiori Elements or Freestyle SAPUI5 applications, configuring Page Editor for List Report or Object Page, working with annotations and Service Modeler, setting up deployment to ABAP or Cloud Foundry, creating adaptation projects, using Guided Development, previewing with mock data or live data, configuring SAP Fiori launchpad, or using AI-powered generation with Project Accelerator/Joule. Technologies: SAP Fiori Elements, SAPUI5, OData V2/V4, CAP, SAP BTP, ABAP, Cloud Foundry, fiori-mcp-server (MCP tools for AI-assisted generation).
sap-cap-capire
secondsky/sap-skills
SAP Cloud Application Programming Model (CAP) development skill using Capire documentation. Use when: building CAP applications, defining CDS models, implementing services, working with SAP HANA/SQLite/PostgreSQL databases, deploying to SAP BTP Cloud Foundry or Kyma, implementing Fiori UIs, handling authorization, multitenancy, or messaging. Covers CDL/CQL/CSN syntax, Node.js and Java runtimes, event handlers, OData services, and CAP plugins.
sap-btp-developer-guide
secondsky/sap-skills
Develops business applications on SAP Business Technology Platform (BTP) using CAP (Node.js/Java) or ABAP Cloud. Use when: building cloud applications on SAP BTP, deploying to Cloud Foundry or Kyma runtimes, integrating with SAP HANA Cloud, implementing SAP Fiori UIs, connecting to remote SAP systems, building multitenant SaaS applications, extending SAP S/4HANA or SuccessFactors, setting up CI/CD pipelines, implementing observability, or following SAP development best practices. Keywords: SAP BTP, Business Technology Platform, CAP, Cloud Application Programming Model, ABAP Cloud, Cloud Foundry, Kyma, SAP HANA Cloud, SAP Fiori, SAPUI5, CI/CD, observability, multitenant, SaaS, SAP BTP ABAP environment, SAP Business Application Studio, SAP Cloud SDK, SAP Integration Suite, SAP Event Mesh, SAP Connectivity Service, SAP Destination Service, XSUAA, OAuth, OpenID Connect, OData, CDS, Core Data Services, ABAP CDS, ABAP RESTful Application Programming Model, RAP, ABAP development, SAP BTP deve
sap-btp-best-practices
secondsky/sap-skills
SAP BTP best practices for enterprise architecture, account management, security, and operations, with verification evidence tracked in the repository ledger. Use when planning BTP implementations, setting up account hierarchies, configuring environments, implementing authentication, designing CI/CD pipelines, establishing governance, building Platform Engineering teams, implementing failover strategies, or managing application lifecycle on SAP BTP. Keywords: SAP BTP, account hierarchy, global account, directory, subaccount, Cloud Foundry, Kyma, ABAP, SAP Identity Authentication, CI/CD, governance, Platform Engineering, failover, multi-region, SAP BTP best practices
sap-btp-connectivity
secondsky/sap-skills
SAP BTP Connectivity skill covering Destination Service, Connectivity Service, Cloud Connector, Connectivity Proxy, and Transparent Proxy for Kubernetes. Use when configuring destinations (HTTP, RFC, LDAP, MAIL, TCP), setting up cloud-to-on-premise connectivity, implementing OAuth and principal propagation, deploying connectivity proxies in Kubernetes/Kyma, troubleshooting connectivity errors (405, 407, 503), or configuring multitenancy.
Popular devops & cloud skills
microsoft-foundry
microsoft/azure-skills
Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy/troubleshoot, prompt agent create, managed harness agent create, GitHub Copilot harness agent, create agent, update agent, add tool to agent, invoke agent, agent insights, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure
azure-diagnostics
microsoft/azure-skills
Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, container app 503 or target port mismatch, troubleshoot functions, function telemetry missing or stopped after a config/connection-string change, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource health, root cause of errors, troubleshoot event hubs, troubleshoot service bus, messaging SDK error, AMQP connection failure, message lock lost, lock renewal during long-running processing, service bus dead letter.
azure-prepare
microsoft/azure-skills
Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azd infrastructure, modernize app for Azure with azd, deploy with azd, function app, timer trigger, service bus trigger, event-driven function, managed identity, generate Bicep, generate Terraform, create and deploy to Azure.
azure-ai
microsoft/azure-skills
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.
azure-deploy
microsoft/azure-skills
Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.
azure-validate
microsoft/azure-skills
Pre-deployment validation for Azure readiness. Run deep checks on configuration, infrastructure (Bicep or Terraform), RBAC role assignments, managed identity permissions, and prerequisites before deploying. WHEN: validate my app, check deployment readiness, run preflight checks, verify configuration, check if ready to deploy, validate azure.yaml, validate Bicep, test before deploying, troubleshoot deployment errors, validate Azure Functions, validate function app, validate serverless deployment, verify RBAC roles, check role assignments, review managed identity permissions, what-if analysis, validate Container Apps deployment.