Migrate an Adobe Commerce App Builder project from the Integration Starter Kit or Checkout Starter Kit to the new App Management approach. Run from the root of the App Builder project to be migrated. Pass --auto to skip confirmation prompts (suitable for CI or batch use).
—
—
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
This file documents how domain agents format unresolved questions and how the main orchestrator presents them to the developer.
Each domain agent includes unresolvedQuestions in its DomainResult:
{
"id": "events.provider.label",
"prompt": "What label should the Commerce event provider have?",
"default": "Commerce Provider"
}events.provider.label → eventing.commerce[0].provider.label(suggested: X) and accepted on EnterThe orchestrator groups questions by domain and presents them in a single session:
I need a few details I couldn't determine automatically.
── Events ────────────────────────────────────────────────
1. What label should the Commerce event provider have?
(suggested: Commerce Provider)
── Webhooks ──────────────────────────────────────────────
2. The script "scripts/onboarding/setup.js" handles both webhooks and
event subscriptions. Should I split it into two customInstallationSteps,
or keep it as one?
Options: [split / keep-as-one]
Press Enter to accept suggested values, or type your answer.When populating unresolvedQuestions:
Only add a question if the value cannot be inferred from existing project files.
If a default is highly likely (>90% confidence), include it as default and
the orchestrator will show it as a confirmation, not a question.
Use the most specific id possible. The orchestrator uses this to place the
answer into the assembled config.
Keep prompts short and factual. No hedging language.
Provide default whenever there is a sensible fallback. This minimises
the number of answers the developer needs to type.
For binary choices, phrase the prompt with explicit options inline:
"Options: [split / keep-as-one]" at the end of the prompt.
| id | Config location |
|---|---|
events.commerce.provider.label | eventing.commerce[N].provider.label |
events.commerce.provider.description | eventing.commerce[N].provider.description |
events.commerce.provider.key | eventing.commerce[N].provider.key |
events.external.provider.label | eventing.external[N].provider.label |
webhooks.step.N.name | installation.customInstallationSteps[N].name |
webhooks.step.N.description | installation.customInstallationSteps[N].description |
adminUiSdk.menuItem.N.title | adminUiSdk.registration.menuItems[N].title |
businessConfig.field.N.label | businessConfig.schema[N].label |
businessConfig.field.N.type | businessConfig.schema[N].type |