aa-conversion-funnel-a…
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have…
Execute AEM Edge Delivery Services admin operations - list admins, add/remove users, preview, publish, unpublish content, clear cache, sync code, reindex, generate sitemap, manage snapshots, view logs, manage jobs, list sites, configure org/site settings, manage secrets and API
$ npx -y skills add adobe/skills --skill ops --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/opsContext preview
The summary Claude sees to decide when to auto-load this skill.
Execute AEM Edge Delivery Services admin operations - list admins, add/remove users, preview, publish, unpublish content, clear cache, sync code, reindex, generate sitemap, manage snapshots, view logs, manage jobs, list sites, configure org/site settings, manage secrets and API
name: ops description: Execute AEM Edge Delivery Services admin operations - list admins, add/remove users, preview, publish, unpublish content, clear cache, sync code, reindex, generate sitemap, manage snapshots, view logs, manage jobs, list sites, configure org/site settings, manage secrets and API keys. Also supports Document Authoring (DA) operations via admin.da.live - list/get/put content, copy, move, delete, versioning, and DA-specific preview/publish. Use for any Edge Delivery Services administrative task. license: Apache-2.0 allowed-tools: Read, Write, Edit, Bash, Skill metadata: version: "1.0.0"
Execute admin operations on AEM Edge Delivery Services projects using natural language commands.
| Category | Examples | |----------|----------| | **Content** | preview /path, publish /path, unpublish /path, status /path | | **Cache** | clear cache /path, force clear cache | | **Code** | sync code, deploy code | | **Index** | reindex /path, remove from index | | **Sitemap** | generate sitemap | | **Snapshots** | create snapshot X, publish snapshot X, approve snapshot X | | **Logs** | show logs, show logs last hour | | **Users** | add user@email as author/publish/develop, remove admin user@email, who am i | | **Jobs** | list jobs, job status X, stop job X | | **Sites** | list sites, switch to site-X, use branch feature-X | | **Config** | show org config, show site config, update robots.txt | | **Secrets** | list secrets, create secret, delete secret | | **API Keys** | list API keys, create API key, revoke API key | | **Tokens** | list tokens, create token, revoke token | | **Profiles** | show profile config, create profile, delete profile | | **Index Config** | show index config, update index config (query.yaml) | | **Sitemap Config** | show sitemap config, update sitemap config (sitemap.yaml) | | **Versioning** | list versions, restore version, rollback config | | **Pages** | list pages, list all pages, show indexed pages | | **DA (Document Authoring)** | da list, da source /path, da copy, da move, da delete, da config, da update config, da versions, da create version, da upload media, da auth |
---
---
If the user invokes the skill without a specific command (e.g., just `/ops` or "help me with ops"), show:
Edge Delivery Services Operations Quick commands to try: list pages - Show all indexed pages who am i - Check your user profile list sites - Show available sites show site config - View site configuration preview /path - Preview a content path show logs - View recent activity For the full command list: type help, /ops help, or what can you do?
---
Shell commands use POSIX-compatible syntax (works on macOS/Linux). On Windows, Git Bash or WSL works as-is. The agent should adapt syntax to the user's environment.
---
Check `~/.aem/ops-config.json` for previously stored org and site:
eval $(node -e "
const fs = require('fs');
try {
const c = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ops-config.json', 'utf8'));
console.log('ORG=' + JSON.stringify(c.org || ''));
console.log('SITE=' + JSON.stringify(c.site || ''));
} catch(e) {
console.log('ORG='); console.log('SITE=');
}
")
echo "org=${ORG:-NOT SET} site=${SITE:-NOT SET}"If both `ORG` and `SITE` are set, confirm with the user:
> "Previously used: org=`{ORG}`, site=`{SITE}`. Do you want to continue with these? If not, provide a different site URL (e.g., `https://main--mysite--myorg.aem.page/`)."
If `ORG` or `SITE` is empty, ask:
> "Enter the site preview/live URL for which you want to perform ops (e.g., `https://main--mysite--myorg.aem.page/`)."
Parse org and site from the URL:
URL="$USER_INPUT"
if echo "$URL" | grep -q '\.aem\.page\|\.aem\.live'; then
HOST_PART=$(echo "$URL" | cut -d'/' -f3 | cut -d'.' -f1)
ORG=$(echo "$HOST_PART" | awk -F'--' '{print $NF}')
SITE=$(echo "$HOST_PART" | awk -F'--' '{print $(NF-1)}')
echo "Parsed from URL: org=$ORG site=$SITE"
fiIf the user provides something other than a valid `.aem.page` or `.aem.live` URL, ask again.
Save org and site:
mkdir -p "${HOME}/.aem"
node -e "
const fs = require('fs');
const p = process.env.HOME + '/.aem/ops-config.json';
let c = {};
try { c = JSON.parse(fs.readFileSync(p, 'utf8')); } catch(e) {}
c.org = '${ORG}';
c.site = '${SITE}';
fs.writeFileSync(p, JSON.stringify(c, null, 2));
"Only use org/site from `~/.aem/ops-config.json` or direct user input. Never infer from `git remote`, `fstab.yaml`, or folder/repo names.
Do NOT proceed until both org and site are confirmed.
Before ANY API call, check if auth token exists:
AUTH_TOKEN=$(node -e "
const fs = require('fs');
try {
const t = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ims-token.json', 'utf8'));
if (t.authToken && t.authTokenExpiry > Math.floor(Date.now()/1000) + 60) {
process.stdout.write(t.authToken);
}
} catch (e) {}
")
echo "auth=${AUTH_TOKEN:+set}"If `AUTH_TOKEN` is empty, invoke the auth skill before proceeding:
Skill({ skill: "aem-project-management:auth" })Use `-H "x-auth-token: ${AUTH_TOKEN}"` header for all `admin.hlx.page` API calls.
For sensitive endpoints and destructive operations, read `resources/security.md` and `resources/sens
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…