All AEM as a Cloud Service skills: component development, Workflow model design, development, triggering, launchers, debugging, and triaging, Dispatcher config authoring, advisory, incident response, performance tuning, and security hardening, Rapid Development Environment (RDE) deployment, log inspection, snapshots, and troubleshooting via `aio aem rde`, Jackrabbit Oak query/index tuning (property, Lucene index definitions), and extracting/inventorying JCR queries (XPath, SQL2, QueryBuilder) across a codebase.
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
In-place upgrade of _cq_dialog/.content.xml where nodes use granite/ui/components/foundation/ (without coral/). Only for action: upgrade-coral2. Inputs from .migration/lui-dialog-context.yml.
_cq_dialog/.content.xml classified coral2._cq_dialog.coral2/ backup (or user confirmed re-upgrade).| Coral 2 sling:resourceType | Coral 3 sling:resourceType | Notes |
|---|---|---|
granite/ui/components/foundation/form/textfield | granite/ui/components/coral/foundation/form/textfield | |
granite/ui/components/foundation/form/textarea | granite/ui/components/coral/foundation/form/textarea | |
granite/ui/components/foundation/form/checkbox | granite/ui/components/coral/foundation/form/checkbox | |
granite/ui/components/foundation/form/select | granite/ui/components/coral/foundation/form/select | |
granite/ui/components/foundation/form/radiogroup | granite/ui/components/coral/foundation/form/radiogroup | |
granite/ui/components/foundation/form/pathbrowser | granite/ui/components/coral/foundation/form/pathfield | Component renamed — pathbrowser → pathfield; not a prefix-only replacement |
granite/ui/components/foundation/form/fileupload | cq/gui/components/authoring/dialog/fileupload | Different path family — not a prefix-only replacement |
granite/ui/components/foundation/form/multifield | granite/ui/components/coral/foundation/form/multifield | |
granite/ui/components/foundation/form/numberfield | granite/ui/components/coral/foundation/form/numberfield | |
granite/ui/components/foundation/form/datepicker | granite/ui/components/coral/foundation/form/datepicker | |
granite/ui/components/foundation/form/hidden | granite/ui/components/coral/foundation/form/hidden | |
granite/ui/components/foundation/form/colorfield | granite/ui/components/coral/foundation/form/colorfield | |
granite/ui/components/foundation/form/fieldset | granite/ui/components/coral/foundation/form/fieldset | |
granite/ui/components/foundation/form/password | granite/ui/components/coral/foundation/form/password | |
granite/ui/components/foundation/form/autocomplete | granite/ui/components/coral/foundation/form/autocomplete | |
granite/ui/components/foundation/form/nestedcheckboxlist | granite/ui/components/coral/foundation/form/nestedcheckboxlist | |
granite/ui/components/foundation/form/text | granite/ui/components/coral/foundation/form/text | |
granite/ui/components/foundation/form/tagfield | cq/gui/components/coral/common/form/tagfield | Different path family — not a prefix-only replacement |
granite/ui/components/foundation/container | granite/ui/components/coral/foundation/container | |
granite/ui/components/foundation/fixedcolumns | granite/ui/components/coral/foundation/fixedcolumns | |
granite/ui/components/foundation/tabs | granite/ui/components/coral/foundation/tabs | |
granite/ui/components/foundation/layouts/column | granite/ui/components/coral/foundation/layouts/column | |
granite/ui/components/foundation/layouts/fixedcolumns | granite/ui/components/coral/foundation/layouts/fixedcolumns | |
granite/ui/components/foundation/layouts/well | granite/ui/components/coral/foundation/layouts/well |
Pattern rule: granite/ui/components/foundation/ (without coral/) → granite/ui/components/coral/foundation/. Exceptions (pathbrowser → pathfield, fileupload, tagfield) are listed explicitly above — apply each row's exact Coral 3 value, do not derive by prefix substitution.
Do NOT replace cq/gui/components/authoring/dialog on the root — correct for both versions.
| Condition | Fix |
|---|---|
datepicker missing displayedFormat | Add displayedFormat="MMMM DD, YYYY" |
datepicker missing valueFormat | Add valueFormat="YYYY-MM-DD[T]HH:mm:ss.000Z" |
fileupload missing useHTML5 | Add useHTML5="{Boolean}true" |
fileupload missing uploadUrl | Add uploadUrl="${suffix.path}" |
pathbrowser had rootPath | Carry to converted pathfield; sanitize before writing: strip /libs/ prefix, collapse // to / |
tabs container missing maximized (primary container) | Add maximized="{Boolean}true" |
_cq_dialog/ → _cq_dialog.coral2/._cq_dialog/.content.xml. Apply resource type replacements. Apply property fixes. Sanitize path property values (rootPath and any property whose value starts with /): strip a leading /libs/ prefix and collapse any // double-slash sequences to /.skipReason: editable-templates-in-use): If _cq_design_dialog/ exists and contains Coral 2 resource types, apply the same resource type replacements: backup _cq_design_dialog/ → _cq_design_dialog.coral2/, apply replacements, write in place, and add <exclude pattern=".*/_cq_design_dialog\.coral2(/.*)?"/> to filter.xml.filter.xml: add <exclude pattern=".*/_cq_dialog\.coral2(/.*)?"/>.pathbrowser → pathfield (different name, not prefix-only).fileupload → cq/gui/components/authoring/dialog/fileupload (different path family)..tessl-plugin
skills
aem-rde
aem-workflow
code-assessment
content-distribution
create-component
assets
references
dispatcher
incident-response
references
dispatcher-foundation
performance-tuning
references
dispatcher-foundation
security-hardening
references
dispatcher-foundation
technical-advisory
references
dispatcher-foundation
workflow-orchestrator
references
dispatcher-foundation
ensure-agents-md
references
migration
references
dispatcher
legacy-ui
template-modernization
validation
scripts
dispatcher-tool
validate-migration