adobe/skillsApache-2.053 files

Migration

|

Specification
Skill ID
adobe/skills/migration
Publisher
adobe
Repository
skills
Installs
0
Files
53
License
Apache-2.0
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

adobe/skills/migrationInstalls these files
  • README.md
  • SKILL.md
  • references/cam-mcp.md
  • references/dispatcher/config-generation.md
  • references/dispatcher/context.md
  • references/dispatcher/conversion-patterns.md
  • references/dispatcher/cross-boundary.md
  • references/dispatcher/current-sdk-conventions.md
  • references/dispatcher/output-verification.md
  • references/dispatcher/validation.md
  • references/guava-cache.md
  • references/legacy-ui/cdw/context.md
  • references/legacy-ui/cdw/conversion.md
  • references/legacy-ui/cdw/validation.md
  • references/legacy-ui/dialog/context.md
  • references/legacy-ui/dialog/coral2-to-coral3.md
  • references/legacy-ui/dialog/extjs-to-coral3.md
  • references/legacy-ui/dialog/validation.md
  • references/osgi-cfg-json-cloud-manager.md
  • references/template-modernization/aem-modernization.md
  • references/template-modernization/editable-template-creation.md
  • references/template-modernization/template-modernization-context.md
  • references/template-modernization/template-modernization-validation.md
  • references/vault-package-dependencies.md
  • scripts/.gitignore
  • scripts/README.md
  • scripts/analyzer-runner.js
  • scripts/bpa-findings-helper.js
  • scripts/bpa-findings-helper.test.js
  • scripts/bpa-local-parser.js
  • scripts/dispatcher-conversion.test.js
  • scripts/dispatcher-crossboundary.js
  • scripts/dispatcher-crossboundary.test.js
  • scripts/dispatcher-e2e.test.js
  • scripts/dispatcher-inventory.js
  • scripts/dispatcher-report.js
  • scripts/dispatcher-report.test.js
  • scripts/dispatcher-run.js
  • scripts/dispatcher-tool/package.json
  • scripts/dispatcher-verify.js
  • scripts/fixtures/many-scheduler-bpa.csv
  • scripts/fixtures/minimal-scheduler-bpa.csv
  • scripts/fixtures/urc-bpa.csv
  • scripts/htl-lint-runner.js
  • scripts/legacy-ui-runner.js
  • scripts/osgi-config-runner.js
  • scripts/package-lock.json
  • scripts/package.json
  • scripts/runbook-generator.js
  • scripts/runbook-generator.test.js
  • scripts/template-scan-runner.js
  • scripts/unified-collection-reader.js
  • scripts/vault-package-scan-runner.js

What this skill tells the agent

AEM as a Cloud Service — Code Migration

Source → target: Legacy AEM 6.x / AMS / on-prem → AEM as a Cloud Service. Scoped under skills/aem/cloud-service/skills/migration/ so this is not confused with Edge Delivery or 6.5 LTS.

This skill drives the migration workflow: BPA data, CAM/MCP, one pattern per session, and target discovery. Transformation rules and steps live in the `code-assessment` skill — once a finding's pattern is identified, hand off to {code-assessment}/<pattern>/SKILL.md (or the relevant shared reference under {code-assessment}/references/).

Setup: Use the `aem-cloud-service` install (see repository root README) so both migration and code-assessment paths are available. If you already have the monorepo open with resolvable {code-assessment} paths, no separate install step is required.

Quick start (for the person driving the agent)

One pattern per chat/session — if you ask to "fix everything," the skill will ask you to pick first (e.g. scheduler vs replication vs htlLint).

You have…Say something like…What happens
A whole project to assess"Review my code for AEMaaCS migration"Generates read-only migration-runbook.md — all migration patterns (Java cascade + htlLint + osgiConfig), affected files, sample prompts. No edits.
A BPA CSV"Fix scheduler findings using `./path/to/bpa.csv`"Fastest path: CSV → cached collection → files
CAM + MCP only"Get scheduler findings from CAM; I'll pick the project when you list them."Agent lists projects → you confirm → MCP fetch (cam-mcp.md)
Just a few files"Migrate scheduler in `core/.../MyJob.java`"Manual flow: no BPA required
OSGi → Cloud Manager"Scan my config files and create Cloud Manager environment secrets or variables."Agent auto-reads references/osgi-cfg-json-cloud-manager.md (full Adobe-aligned rules inlined there); no BPA pattern id
HTL lint warnings"Fix htlLint issues in `ui.apps`"Proactive discovery via rg → fix per the HTL lint reference
Vault package dependencies"Fix vault-package-dependencies findings" / "Package install fails on AEMaaCS."Agent reads references/vault-package-dependencies.md — heuristic pom.xml scan (no BPA subtype, no analyzer) for day/cq60/product:* install-time deps in content-package-maven-plugin; removes the whole <dependencies> block. Not a code-assessment pattern — this dependency shape never occurs in native AEMaaCS code.
Template modernization"Migrate my static templates to editable templates and generate Modernize Tools rules." / "Create editable templates from my static templates." / "Generate AEM Modernize Tools structure/component/policy rules."Agent auto-reads references/template-modernization/template-modernization-context.md (shared discovery + structured context), produces a per-template plan table, then executes the plan using editable-template-creation.md and aem-modernization.md, and validates via template-modernization-validation.md. No BPA pattern id.
Dialog migration"Convert my Classic UI / ExtJS dialogs to Touch UI." / "Upgrade Coral 2 dialogs to Coral 3." / "Fix LUI dialog findings."Agent reads references/legacy-ui/dialog/context.md — filters BPA LUI to dialog sub-types, converts via extjs-to-coral3.md or coral2-to-coral3.md, validates via validation.md. BPA pattern id: lui.
Custom widget migration"Fix my CDW findings." / "Migrate custom ExtJS widgets to Coral 3."Agent reads references/legacy-ui/cdw/context.md — inventories xtypes, maps or scaffolds Granite UI components via conversion.md, validates via validation.md. BPA pattern id: cdw. Run CDW before dialog migration when both are needed.
Guava cache warnings"Fix guavaCache findings using BPA CSV." / "Swap Guava cache for Caffeine."Agent reads references/guava-cache.md — BPA is the source of truth (subtype custom.guava.cache); one finding per bundle, not per Guava-internal class row. BPA pattern id: guavaCache. Not a code-assessment pattern — Guava cache usage only occurs in pre-migration code, never native AEMaaCS code.
Dispatcher conversion"Convert my AMS / on-prem Dispatcher config to AEM as a Cloud Service."Agent reads references/dispatcher/context.md — detects the config mode, generates the tool config, runs Adobe's dispatcher-converter, verifies output (filter/ACL hard-gate), and validates. Branch E. Runbook pattern id: dispatcherConversion (heuristic).

Starter prompts (copy-paste) — the Quick start table above covers each pattern individually; these add the whole-project entry point, source-specific invocations (CSV / CAM / manual), and multi-step combinations:

  • "Review my code for AEMaaCS migration" — start here for a full runbook before changing anything.
  • "Use the migration skill: scheduler only, BPA CSV at `./reports/bpa.csv`."
  • "Replication only from CAM; list projects first, I'll pick one."
  • "Manual: event listener migration for `.../Listener.java`."
  • "Fix all Classic UI and custom widget findings — CDW first, then dialogs."
  • "Fix guavaCache findings using BPA CSV at `./reports/bpa.csv`."

Path convention (Adobe Skills monorepo)

From the repository root (parent of the skills/ directory):

SymbolPath
`{code-assessment}`skills/aem/cloud-service/skills/code-assessment/

Examples: {code-assessment}/SKILL.md, {code-assessment}/scheduler/SKILL.md, {code-assessment}/references/scr-to-osgi-ds.md.

Workspace scope (IDE) — user code only

Applies to finding and editing the user's AEM project (Java, bundles, config, HTL), not to reading installed skill files under {code-assessment}.

  • Treat the current IDE workspace root folder(s) (single- or multi-root) as the only boundary for searches, globs, grep, and file reads/writes for migration targets.
  • Do not search parent directories, sibling folders on disk, ~, other clones, or arbitrary absolute paths to "discover" sources unless the user explicitly names those paths or asks you to include them.
  • BPA CSV / CAM targets: If a filePath or class-to-file mapping does not resolve under a workspace root, stop and tell the user which paths are missing — do not hunt elsewhere on the filesystem. Ask them to open the correct project in the IDE or adjust paths.
  • Manual flow: Only migrate files the user named that live under the workspace (or paths they explicitly provided). Do not expand scope by searching outside the workspace.

Required delegation (do this first)

Use this skill in a project

Open any RiverX project, search the Skills panel for adobe/skills/migration, and install it in one click.

Use this skill