migrate
Installation
SKILL.md
Application Frontend Migration Skill
HARD RULES (NEVER VIOLATE)
- Never touch the source project. All migration work happens exclusively inside
appfront-migrated/. The source directory is read-only — never edit, delete, or overwrite any file outsideappfront-migrated/. - Never assume the auth service. Always read
xs-security.json(orias-security.json) and everyxs-app.jsonbefore deciding XSUAA vs IAS. The source may mix both. - Never apply html5-repo migration rules to a Neo source. Neo uses a different MTA structure (
neo-mta.yaml, parameters-based artifacts). Check first. HTML5Runtime_enabled: trueon a destination-service resource must be removed. Its presence signals html5-apps-repo usage. appFront does not use this property.- The
destination-contentmodule must be removed entirely. This module creates instance-level destinations with service keys — a pattern only used by html5-apps-repo. appFront's deployer module binds directly to service instances. - The
app-contentmodule'srequireslist must include all backend service instances directly. Not via destination mapping. Credentials injected into the running approuter come from directrequires. - Never change
xs-app.jsonauthenticationTypeon any route without explicit user confirmation of the target auth service. Wrong authenticationType = 401 in production. - If the source uses
sap.cloud.servicein a destination-content module, flag this as a WorkZone integration pattern requiring additional CDM steps. Document it clearly in the migration plan and wait for user acknowledgment before proceeding. - Resource and service naming must use the
sap.cloud.serviceprefix (without dots). Given prefixP(dots stripped):- Resource name:
P-<service>(e.g.comsapfavorites-app-front,comsapfavorites-xsuaa) service-nameparameter:P-<service>-service(e.g.comsapfavorites-app-front-service)- Never invent arbitrary names. Never reuse the source app names. Always derive from the
sap.cloud.servicevalue extracted in Phase 1a-naming.
- Resource name:
- Always ask for the backend URL when the backend exists. Only emit
<<REPLACE_WITH_REAL_BACKEND_URL>>when the user explicitly says the URL is not yet known. This placeholder is intentionally invalid — it will cause an MTA build error, forcing the user to replace it before deploying. - Never add
redirect-uristo generatedxs-security.json. appFront does not require them — omit the field entirely, even if the source had them.