aa-conversion-funnel-a…
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have…
Use this when a user wants to create a brand-new AEM Edge Delivery site from scratch and no GitHub repository or DA content exists yet — triggers include 'set up a new site', 'create a new EDS project', or 'onboard a new site'. Covers creating the GitHub repo from the
$ npx -y skills add adobe/skills --skill create-site --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/create-siteContext preview
The summary Claude sees to decide when to auto-load this skill.
Use this when a user wants to create a brand-new AEM Edge Delivery site from scratch and no GitHub repository or DA content exists yet — triggers include 'set up a new site', 'create a new EDS project', or 'onboard a new site'. Covers creating the GitHub repo from the
name: create-site description: Use this when a user wants to create a brand-new AEM Edge Delivery site from scratch and no GitHub repository or DA content exists yet — triggers include 'set up a new site', 'create a new EDS project', or 'onboard a new site'. Covers creating the GitHub repo from the boilerplate, installing aem-code-sync, seeding initial DA content (nav, footer, homepage), and returning a live preview URL. For importing or migrating existing pages use page-import; for building blocks on an existing site use content-driven-development. license: Apache-2.0 metadata: version: "1.1.0"
This skill walks through the full onboarding flow for a new AEM Edge Delivery site. It handles everything that can be automated and clearly signals the steps that require human action.
Use this skill when:
**Do NOT use this skill for:**
---
Create a checklist to track progress (use your agent's task-tracking tool if available):
1. **Gather inputs** — org, repo name, site name collected 2. **Create GitHub repository** — repo created from boilerplate template 3. **Install aem-code-sync** *(human action)* — GitHub App installed on repo 4. **Authenticate with DA** — valid IMS token obtained 5. **Create initial content in DA** — nav, footer, index created 6. **Trigger preview** — all three paths return 200/201 7. **Hand off** — preview URL and DA links delivered to user
---
Ask the user for the following. Do not proceed until all required inputs are provided.
1. **GitHub org** — the GitHub organization or username where the repo will be created (e.g. `my-org`) 2. **Project name** — the repository name, lowercase, hyphens only (e.g. `my-site`) 3. **Site name** — the human-readable name used in content (e.g. `My Site`). If not provided, derive it from the project name.
Store as: `{{ORG}}`, `{{REPO}}`, `{{SITE_NAME}}`
---
Create a new repository using the `adobe/aem-boilerplate` template.
**Option A — GitHub CLI (preferred, handles auth automatically):**
gh repo create {{ORG}}/{{REPO}} \
--template adobe/aem-boilerplate \
--description "{{SITE_NAME}} — AEM Edge Delivery site" \
--publicCheck if `gh` is available with `gh auth status`. If not authenticated, run `gh auth login` first.
**Option B — GitHub API (if `gh` CLI is not available):**
POST https://api.github.com/repos/adobe/aem-boilerplate/generate
Authorization: Bearer {{GITHUB_TOKEN}}
Content-Type: application/json
{
"owner": "{{ORG}}",
"name": "{{REPO}}",
"description": "{{SITE_NAME}} — AEM Edge Delivery site",
"private": false,
"include_all_branches": false
}To obtain a token: https://github.com/settings/tokens/new — scope: `repo`.
**Success:** HTTP 201 (API) or exit code 0 (CLI). The repo is now live at `https://github.com/{{ORG}}/{{REPO}}`.
---
The aem-code-sync GitHub App connects the repository to AEM's content delivery pipeline. This step cannot be automated — the user must complete it in the browser.
Tell the user:
> **Action required:** Install the AEM Code Sync app on your new repository. > > 1. Open this URL: https://github.com/apps/aem-code-sync/installations/new > 2. Under "Repository access", select **Only select repositories** > 3. Choose **{{ORG}}/{{REPO}}** from the list > 4. Click **Save** > > Reply "done" when complete.
Wait for confirmation before proceeding.
**Verify:** After confirmation, check that `https://admin.hlx.page/status/{{ORG}}/{{REPO}}/main/` returns a valid JSON response (not 404). If it does, the app is correctly installed.
---
DA requires Adobe IMS authentication. Choose the appropriate path:
**Option A — da-auth-helper (preferred)**
`da-auth-helper` (https://github.com/adobe-rnd/da-auth-helper) caches IMS tokens at `~/.aem/da-token.json`. Always check the cache first before triggering a new OAuth flow.
1. Check for a valid cached token:
node -e "
const fs = require('fs');
const p = process.env.HOME + '/.aem/da-token.json';
if (!fs.existsSync(p)) { console.log('No cache'); process.exit(1); }
const t = JSON.parse(fs.readFileSync(p));
console.log('Valid:', t.expires_at > Date.now());
console.log('Expires:', new Date(t.expires_at).toISOString());
"2. If valid, capture the token and skip to Step 5:
DA_TOKEN=$(node -e "const t = require(process.env.HOME + '/.aem/da-token.json'); process.stdout.write(t.access_token);")
3. If missing or expired, install da-auth-helper from GitHub (it is not published to npm) and refresh:
npm install -g github:adobe-rnd/da-auth-helper da-auth-helper token
This opens a browser for Adobe IMS login and writes the new token to `~/.aem/da-token.json`. Then capture it as in step 2.
**Option B — DA MCP is configured**
If the DA MCP server is available, trigger the authentication tool to start the OAuth flow and share the authorizatio
Repo: 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…