---
name: fix-bootstrap-params
description: |
Fix HTML bootstrap parameter issues that UI5 linter reports but cannot auto-fix. Use this skill when linter outputs these rules:
- `no-deprecated-api` - For missing/deprecated bootstrap parameters (async, compat-version, animation, binding-syntax, etc.)
- `no-deprecated-theme` - For deprecated theme values in data-sap-ui-theme
- `no-deprecated-library` - For deprecated libraries in data-sap-ui-libs
Trigger on error messages containing: "Missing bootstrap parameter", "Abandoned bootstrap parameter", "Redundant bootstrap parameter", "deprecated value", "bootstrap"
Automatically applies safe fixes to HTML files containing UI5 bootstrap script tags.
---
# Fix Bootstrap Parameters
## Key Rules
1. **ONLY modify the bootstrap `` before or after the bootstrap tag, leave it untouched.
This skill fixes HTML bootstrap parameter issues that the UI5 linter detects but cannot auto-fix because the changes may affect application behavior.
## Linter Rules Handled
| Rule ID | Message Pattern | This Skill's Action |
|---------|-----------------|---------------------|
| `no-deprecated-api` | Missing bootstrap parameter 'data-sap-ui-async' | Add `data-sap-ui-async="true"` |
| `no-deprecated-api` | Missing bootstrap parameter 'data-sap-ui-compat-version' | Add `data-sap-ui-compat-version="edge"` |
| `no-deprecated-api` | Use of deprecated value 'false' for bootstrap parameter 'data-sap-ui-async' | Change to `"true"` |
| `no-deprecated-api` | Use of deprecated value '...' for bootstrap parameter 'data-sap-ui-compat-version' | Change to `"edge"` |
| `no-deprecated-api` | Abandoned bootstrap parameter '...' should be removed | Remove the parameter |
| `no-deprecated-api` | Redundant bootstrap parameter '...' should be removed | Remove the parameter |
| `no-deprecated-api` | Bootstrap parameter '...' should be replaced with '...' | Replace with new parameter |
| `no-deprecated-theme` | Use of deprecated theme '...' | Change to `sap_horizon` |
| `no-deprecated-library` | Use of deprecated library '...' | Remove from libs |
## When to Use
Apply this skill when you see linter output like:
```
index.html:8:3 error Missing bootstrap parameter 'data-sap-ui-async' no-deprecated-api
index.html:9:3 error Missing bootstrap parameter 'data-sap-ui-compat-version' no-deprecated-api
index.html:12:3 error Abandoned bootstrap parameter 'data-sap-ui-no-duplicate-ids' should be removed no-deprecated-api
index.html:15:3 error Use of deprecated theme 'sap_bluecrystal' no-deprecated-theme
```
## Fix Strategy
### 1. Locate the Bootstrap Script Tag
Find the `
```
#### `no-deprecated-api` - Deprecated Values
**`data-sap-ui-async="false"`**: Change to `"true"`
**`data-sap-ui-compat-version` with non-edge value**: Change to `"edge"`
#### `no-deprecated-api` - Abandoned Parameters (remove completely)
Remove these parameters entirely:
- `data-sap-ui-no-duplicate-ids` - Enforced in modern UI5
- `data-sap-ui-auto-aria-body-role` - Removed in modern UI5
- `data-sap-ui-manifest-first` - Use Component.create manifest option instead
- `data-sap-ui-origin-info` - No longer supported
- `data-sap-ui-areas` - Use Control.placeAt instead
- `data-sap-ui-trace` - No longer supported
- `data-sap-ui-xx-no-less` - No longer supported
#### `no-deprecated-api` - Redundant Parameters
- `data-sap-ui-binding-syntax="simple"` - Remove; complex syntax is enforced in modern UI5
- `data-sap-ui-binding-syntax="complex"` - Remove if `compat-version="edge"` is set
- `data-sap-ui-preload` with invalid values - Remove
#### `no-deprecated-api` - Replaced Parameters
- `data-sap-ui-animation` → `data-sap-ui-animation-mode` (convert `true`→`full`, `false`→`minimal`)
#### `no-deprecated-theme` - Deprecated Themes
Replace with modern theme:
- `sap_bluecrystal` → `sap_horizon`
- `sap_belize` → `sap_horizon`
- `sap_belize_plus` → `sap_horizon`
- `sap_belize_hcb` → `sap_horizon_hcb`
- `sap_belize_hcw` → `sap_horizon_hcw`
- `sap_hcb` → `sap_horizon_hcb`
- `sap_ux` → `sap_horizon`
- `sap_platinum` → `sap_horizon`
- `sap_goldreflection` → `sap_horizon`
#### `no-deprecated-library` - Deprecated Libraries
Remove deprecated libraries from `data-sap-ui-libs`:
- `sap.ui.commons`
- `sap.ui.ux3`
- `sap.makit`
- `sap.me`
- `sap.ca.ui`
- `sap.sac.grid`
- `sap.ui.suite`
- `sap.zen.commons`
- `sap.zen.crosstab`
- `sap.zen.dsh`
## Implementation Steps
1. Read the HTML file
2. Parse to find the bootstrap script tag
3. For each linter error (identified by rule ID and message):
- If missing parameter: Add the parameter with recommended value
- If deprecated value: Update to recommended value
- If abandoned/redundant: Remove the parameter
- If deprecated theme: Replace with modern theme
- If deprecated library: Remove from libs list
4. Preserve formatting (indentation, line breaks) as much as possible
5. Write the updated file
## Example Fix
Given linter output:
```
index.html:8:3 error Missing bootstrap parameter 'data-sap-ui-async' no-deprecated-api
index.html:8:3 error Missing bootstrap parameter 'data-sap-ui-compat-version' no-deprecated-api
index.html:12:3 error Abandoned bootstrap parameter 'data-sap-ui-no-duplicate-ids' should be removed no-deprecated-api
index.html:10:3 error Use of deprecated theme 'sap_bluecrystal' no-deprecated-theme
```
Transform:
```html
```
## Notes
- Always add `data-sap-ui-async="true"` before other data attributes for consistency
- Setting `compat-version="edge"` enables complex binding syntax automatically, so `binding-syntax` becomes redundant
- Removed parameters should not leave trailing whitespace or empty lines
- If the file has multiple script tags, only modify the bootstrap tag — leave all others intact (including inline `