Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 5 additions & 5 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,27 @@
"plugins": [
{
"name": "aem-edge-delivery-services",
"source": "./skills/aem/edge-delivery-services",
"source": "./plugins/aem/edge-delivery-services",
"description": "Skills for AEM Edge Delivery Services development"
},
{
"name": "aem-cloud-service",
"source": "./skills/aem/cloud-service",
"source": "./plugins/aem/cloud-service",
"description": "All AEM as a Cloud Service skills: component development and Dispatcher, workflows"
},
{
"name": "aem-6-5-lts",
"source": "./skills/aem/6.5-lts",
"source": "./plugins/aem/6.5-lts",
"description": "All AEM 6.5 LTS skills: Dispatcher, workflows for AEM 6.5 LTS and AMS environment"
},
{
"name": "aem-project-management",
"source": "./skills/aem/project-management",
"source": "./plugins/aem/project-management",
"description": "Project lifecycle management for AEM Edge Delivery Services"
},
{
"name": "app-builder",
"source": "./skills/app-builder",
"source": "./plugins/app-builder",
"description": "Development, customization, testing, and deployment skills for Adobe App Builder projects"
}
]
Expand Down
10 changes: 5 additions & 5 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,16 @@
/.claude-plugin/ @shsteimer @trieloff

# AEM Edge Delivery Services (Sean Steimer is primary author of all skills)
/skills/aem/edge-delivery-services/ @shsteimer
/plugins/aem/edge-delivery-services/ @shsteimer

# AEM Project Management (Astha Bhargava is sole author)
/skills/aem/project-management/ @AsthaBhargava
/plugins/aem/project-management/ @AsthaBhargava

# AEM Cloud Service (in-flight, contributors: abhishekgarg18, pkumargaddam, Himanich, akankshajain18, rombert)
/skills/aem/cloud-service/ @abhishekgarg18 @pkumargaddam @Himanich @akankshajain18 @rombert
/plugins/aem/cloud-service/ @abhishekgarg18 @pkumargaddam @Himanich @akankshajain18 @rombert

# AEM 6.5 LTS (in-flight, contributors: abhishekgarg18, akankshajain18, rombert)
/skills/aem/6.5-lts/ @abhishekgarg18 @akankshajain18 @rombert
/plugins/aem/6.5-lts/ @abhishekgarg18 @akankshajain18 @rombert

# Adobe App Builder
/skills/app-builder/skills @pkumargaddam
/plugins/app-builder/skills @pkumargaddam
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
CHANGED_FILES=$(git diff --name-only ${{ github.event.before }}..${{ github.sha }} 2>/dev/null || git diff --name-only HEAD)

# Build list of all skill directories (parents of SKILL.md)
ALL_SKILL_DIRS=$(find skills -name SKILL.md -exec dirname {} \; | sort)
ALL_SKILL_DIRS=$(find plugins -name SKILL.md -exec dirname {} \; | sort)

# For each changed file, find which skill directory it belongs to
DIRS=""
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/tessl-eval.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)

# Build list of all tile directories (parents of tile.json)
ALL_TILE_DIRS=$(find skills -name tile.json -exec dirname {} \; 2>/dev/null | sort)
ALL_TILE_DIRS=$(find plugins -name tile.json -exec dirname {} \; 2>/dev/null | sort)

if [ -z "$ALL_TILE_DIRS" ]; then
echo "skip=true" >> "$GITHUB_OUTPUT"
Expand All @@ -78,11 +78,11 @@ jobs:

DIRS=$(echo "$DIRS" | xargs) # trim whitespace

# Check for unmatched changes under skills/
# Check for unmatched changes under plugins/
UNMATCHED=false
for changed_file in $CHANGED_FILES; do
case "$changed_file" in
skills/*)
plugins/*)
MATCHED=false
for tile_dir in $ALL_TILE_DIRS; do
case "$changed_file" in
Expand All @@ -98,8 +98,8 @@ jobs:
done

if [ "$UNMATCHED" = "true" ]; then
echo "Unmatched changes under skills/ detected — evaluating all tiles"
DIRS=$(find skills -name tile.json -exec dirname {} \; 2>/dev/null | tr "\n" " " | xargs)
echo "Unmatched changes under plugins/ detected — evaluating all tiles"
DIRS=$(find plugins -name tile.json -exec dirname {} \; 2>/dev/null | tr "\n" " " | xargs)
fi

if [ -z "$DIRS" ]; then
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/tessl-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)

# Build list of all skill directories (parents of SKILL.md)
ALL_SKILL_DIRS=$(find skills -name SKILL.md -exec dirname {} \; | sort)
ALL_SKILL_DIRS=$(find plugins -name SKILL.md -exec dirname {} \; | sort)

# For each changed file, find which skill directory it belongs to
DIRS=""
Expand All @@ -44,11 +44,11 @@ jobs:

DIRS=$(echo "$DIRS" | xargs) # trim whitespace

# Check for unmatched changes under skills/
# Check for unmatched changes under plugins/
UNMATCHED=false
for changed_file in $CHANGED_FILES; do
case "$changed_file" in
skills/*)
plugins/*)
MATCHED=false
for skill_dir in $ALL_SKILL_DIRS; do
case "$changed_file" in
Expand All @@ -64,8 +64,8 @@ jobs:
done

if [ "$UNMATCHED" = "true" ]; then
echo "Unmatched changes under skills/ detected — reviewing all skills"
DIRS=$(find skills -name SKILL.md -exec dirname {} \; 2>/dev/null | tr "\n" " " | xargs)
echo "Unmatched changes under plugins/ detected — reviewing all skills"
DIRS=$(find plugins -name SKILL.md -exec dirname {} \; 2>/dev/null | tr "\n" " " | xargs)
fi

if [ -z "$DIRS" ]; then
Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:

if [ -z "$SKILL_DIRS_INPUT" ]; then
# Push to main or no filter: review all skills
find skills -name SKILL.md -exec dirname {} \; > "$SKILL_LIST_FILE"
find plugins -name SKILL.md -exec dirname {} \; > "$SKILL_LIST_FILE"
else
# PR mode: use detected skill dirs
printf '%s\n' $SKILL_DIRS_INPUT > "$SKILL_LIST_FILE"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
fi

missing=()
for dir in skills/*/*/; do
for dir in plugins/*/*/; do
# Remove trailing slash for the lookup path
path="/${dir%/}"
if ! grep -q "^${path}[/ ]" "$codeowners"; then
Expand All @@ -62,7 +62,7 @@ jobs:
- name: Check SKILL.md files have license field in frontmatter
run: |
missing=()
for file in $(find skills -name SKILL.md); do
for file in $(find plugins -name SKILL.md); do
# Extract frontmatter (between first two --- delimiters) and check for license field
if ! awk '/^---$/{n++; next} n==1{print} n>=2{exit}' "$file" | grep -q "^license:"; then
missing+=("$file")
Expand All @@ -75,7 +75,7 @@ jobs:
echo "| Skill | Status |" >> "$GITHUB_STEP_SUMMARY"
echo "|-------|--------|" >> "$GITHUB_STEP_SUMMARY"

for file in $(find skills -name SKILL.md | sort); do
for file in $(find plugins -name SKILL.md | sort); do
if printf '%s\n' "${missing[@]}" | grep -qx "$file"; then
echo "| $file | ❌ Missing |" >> "$GITHUB_STEP_SUMMARY"
else
Expand Down
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ The `create-component` skill creates complete AEM components following Adobe bes
- Clientlibs (component and dialog)
- Optional Sling Servlet for dynamic content

See `skills/aem/cloud-service/skills/create-component/` for the skill and its reference files.
See `plugins/aem/cloud-service/skills/create-component/` for the skill and its reference files.

### AEM as a Cloud Service — Ensure AGENTS.md (bootstrap)

Expand All @@ -92,14 +92,14 @@ customer opens their AEM Cloud Service project and asks the agent anything, this

If `AGENTS.md` already exists it is never overwritten.

See `skills/aem/cloud-service/skills/ensure-agents-md/` for the skill, template, and module catalog.
See `plugins/aem/cloud-service/skills/ensure-agents-md/` for the skill, template, and module catalog.

### AEM Workflow

Workflow skills cover the full AEM Granite Workflow Engine lifecycle — from designing and implementing workflows to production debugging and incident triaging. Like Dispatcher, they are split by runtime flavor:

- `skills/aem/cloud-service/skills/aem-workflow` — Cloud Service variant (no JMX, Cloud Manager logs, pipeline deploy)
- `skills/aem/6.5-lts/skills/aem-workflow` — 6.5 LTS / AMS variant (JMX, Felix Console, direct log access)
- `plugins/aem/cloud-service/skills/aem-workflow` — Cloud Service variant (no JMX, Cloud Manager logs, pipeline deploy)
- `plugins/aem/6.5-lts/skills/aem-workflow` — 6.5 LTS / AMS variant (JMX, Felix Console, direct log access)

Each flavor contains the same specialist sub-skills:

Expand All @@ -119,8 +119,8 @@ Dispatcher skills are split by runtime flavor to avoid mode auto-detection and k
Install only one dispatcher flavor in a workspace (`cloud-service` or `6.5-lts`).

Current dispatcher flavors:
- `skills/aem/cloud-service/skills/dispatcher`
- `skills/aem/6.5-lts/skills/dispatcher`
- `plugins/aem/cloud-service/skills/dispatcher`
- `plugins/aem/6.5-lts/skills/dispatcher`

Each flavor contains parallel capability groups (workflow orchestration, config authoring, technical advisory, incident response, performance tuning, and security hardening).
Shared advisory logic is centralized under each flavor's `dispatcher/shared/references/` to reduce duplication and drift.
Expand All @@ -129,7 +129,7 @@ Shared advisory logic is centralized under each flavor's `dispatcher/shared/refe

Replication skills for AEM 6.5 LTS cover the full content distribution lifecycle from agent configuration to troubleshooting.

**Location:** `skills/aem/6.5-lts/skills/aem-replication`
**Location:** `plugins/aem/6.5-lts/skills/aem-replication`

The aem-replication skill contains four specialist sub-skills:

Expand All @@ -149,7 +149,7 @@ The aem-replication skill contains four specialist sub-skills:

### AEM as a Cloud Service — Best Practices & Migration

Under `skills/aem/cloud-service/skills/`, **`best-practices/`** is the **general-purpose** Cloud Service skill: pattern modules, Java baseline references (SCR→OSGi DS, resolver/logging, and related refs), and day-to-day Cloud Service alignment. Use it **without** loading **migration** for greenfield or maintainability work. **`migration/`** (BPA/CAM orchestration) is **scoped to legacy AEM → AEM as a Cloud Service** (not Edge Delivery or 6.5 LTS); it **delegates** concrete refactors to **`best-practices`** (`references/`). **Installing the AEM as a Cloud Service plugin** (`aem-cloud-service`, or the `skills/aem/cloud-service` path with `npx skills` / `gh upskill`) **includes both**; the agent should load the appropriate `SKILL.md` for the task. Use **`gh upskill` / `npx skills` with `--skill`** when you need a specific bundled skill (see **Installation** above).
Under `plugins/aem/cloud-service/skills/`, **`best-practices/`** is the **general-purpose** Cloud Service skill: pattern modules, Java baseline references (SCR→OSGi DS, resolver/logging, and related refs), and day-to-day Cloud Service alignment. Use it **without** loading **migration** for greenfield or maintainability work. **`migration/`** (BPA/CAM orchestration) is **scoped to legacy AEM → AEM as a Cloud Service** (not Edge Delivery or 6.5 LTS); it **delegates** concrete refactors to **`best-practices`** (`references/`). **Installing the AEM as a Cloud Service plugin** (`aem-cloud-service`, or the `plugins/aem/cloud-service` path with `npx skills` / `gh upskill`) **includes both**; the agent should load the appropriate `SKILL.md` for the task. Use **`gh upskill` / `npx skills` with `--skill`** when you need a specific bundled skill (see **Installation** above).

**Key features:**
- **Best practices:** one skill for patterns, SCR→OSGi DS, and resolver/logging — applicable to Cloud Service projects generally, not only migration
Expand Down Expand Up @@ -193,7 +193,7 @@ _Coming soon._
## Repository Structure

```
skills/
plugins/
├── aem/
│ ├── edge-delivery-services/
│ │ ├── .claude-plugin/
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"type": "module",
"description": "Adobe skills for AI coding agents",
"scripts": {
"validate": "find skills -name SKILL.md -exec dirname {} \\; | xargs -I {} skills-ref validate {}"
"validate": "find plugins -name SKILL.md -exec dirname {} \\; | xargs -I {} skills-ref validate {}"
},
"devDependencies": {
"@semantic-release/changelog": "^6.0.3",
Expand Down
File renamed without changes.
Loading