aa-conversion-funnel-a…
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have…
Use this when the user mentions component models, component definitions, component filters, block configuration for the Universal Editor, UE block setup, adding a new block to UE, configuring block properties or block authoring fields, or wants to create an EDS/Franklin block
$ npx -y skills add adobe/skills --skill ue-component-model --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ue-component-modelContext preview
The summary Claude sees to decide when to auto-load this skill.
Use this when the user mentions component models, component definitions, component filters, block configuration for the Universal Editor, UE block setup, adding a new block to UE, configuring block properties or block authoring fields, or wants to create an EDS/Franklin block
name: ue-component-model description: Use this when the user mentions component models, component definitions, component filters, block configuration for the Universal Editor, UE block setup, adding a new block to UE, configuring block properties or block authoring fields, or wants to create an EDS/Franklin block with Universal Editor support, modify block fields, or add a block to the section filter. Covers creating and editing the three JSON files that control how AEM Edge Delivery Services blocks appear and behave in the Universal Editor — component-definition.json, component-models.json, and component-filters.json. license: Apache-2.0
This skill helps you create or edit the three JSON configuration files that control how AEM Edge Delivery Services (EDS) blocks appear and behave in the Universal Editor (UE):
1. **component-definition.json** — Registers blocks in the UE component palette 2. **component-models.json** — Defines property panel fields for each block 3. **component-filters.json** — Controls where blocks can be placed
Before generating any configuration, read and analyze:
1. **The block's JS file** (`blocks/<name>/<name>.js`) — understand what content the `decorate(block)` function expects:
2. **The block's CSS file** (`blocks/<name>/<name>.css`) — look for variant-specific styles.
3. **Existing config** — check if entries already exist:
Based on the JS analysis:
Map the block's content expectations to component model fields. Read [references/field-types.md](references/field-types.md) for the full field type reference.
**Common field mappings:**
| Block expects... | Use component type | Notes | |-----------------|-------------------|-------| | An image | `reference` (name: `image`) | Pair with `text` field named `imageAlt` | | A URL/link | `aem-content` (name: `link` or `url`) | For page links and external URLs | | Rich text content | `richtext` | For formatted text with headings, lists, links | | Plain text (single line) | `text` | For titles, labels, short strings | | Plain text (multi-line) | `textarea` | For descriptions, notes, long text without formatting | | Heading level choice | `select` with h1-h6 options | Name it `titleType` to auto-collapse with title | | Style variants | `multiselect` (name: `classes`) | Values become CSS classes on block div | | Multiple toggles | `checkbox-group` | For multiple independent boolean options | | Boolean toggle | `boolean` | For show/hide options | | Number value | `number` | For counts, limits | | Content Fragment | `aem-content-fragment` | For CF-driven blocks | | Experience Fragment | `aem-experience-fragment` | For reusable content+layout fragments | | Content tags | `aem-tag` | For categorization via AEM tag picker |
**Field naming rules (semantic collapsing):**
Generate entries for all three files. The approach depends on whether the project uses centralized or distributed config.
**Check for distributed config pattern**: If the block directory contains `_<blockname>.json` files (e.g., `blocks/hero/_hero.json`), create a distributed config file instead of editing the central files.
**component-definition.json** — Add to the `"Blocks"` group's `components` array:
{
"title": "<Block Display Name>",
"id": "<block-id>",
"plugins": {
"xwalk": {
"page": {
"resourceType": "core/franklin/components/block/v1/block",
"template": {
"name": "<Block Name>",
"model": "<model-id>"
}
}
}
}
}For container blocks, add both the container AND item definitions. The container gets `"filter"` instead of `"model"`, and the item uses `"core/franklin/components/block/v1/block/item"` as resourceType.
For key-value blocks, add `"key-value": true` to the template.
Template can include default values for any model field (e.g., `"titleType": "h3"`, `"classes": ["light"]`).
**component-models.json** — Add a new model entry:
{
"id": "<model-id>",
"fields": [
{
"componeRepo: adobe/skills
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have…
Generates a concise, executive-ready performance summary covering key metrics, trends, and…
Produces a compact KPI digest showing how key metrics changed over a period and what's…
Compares the performance of two or more audience segments across key metrics side by side.…
Identifies which items (pages, campaigns, products, channels, regions) had the biggest…
Comprehensive dimension analysis and reporting for CJA. Use this skill whenever the user…