Code Review
Orange-OpenSource/Orange-Boosted-Bootstrap
OUDS Web compliance code review. An agent skill from Orange-OpenSource/Orange-Boosted-Bootstrap.
Use this when making any AEM Edge Delivery Services (EDS, Franklin, Helix) code change — new blocks, block modifications, CSS styling, bug fixes, core functionality (scripts.js, styles, delayed.js)…
$ npx skills add adobe/skills --skill content-driven-development -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install adobe/skills content-driven-development --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/aem/edge-delivery-services/skills/content-driven-development .claude/skills/content-driven-development && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "content-driven-development" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/content-driven-development into .claude/skills/content-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-driven-development", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/content-driven-developmentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add adobe/skills --skill content-driven-development -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install adobe/skills content-driven-development --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/aem/edge-delivery-services/skills/content-driven-development .agents/skills/content-driven-development && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "content-driven-development" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/content-driven-development into .agents/skills/content-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-driven-development", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add adobe/skills --skill content-driven-development -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install adobe/skills content-driven-development --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/aem/edge-delivery-services/skills/content-driven-development .cursor/skills/content-driven-development && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "content-driven-development" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/content-driven-development into .cursor/skills/content-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-driven-development", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/adobe/skills.git --path plugins/aem/edge-delivery-services/skills/content-driven-development--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add adobe/skills --skill content-driven-development -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install adobe/skills content-driven-development --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/aem/edge-delivery-services/skills/content-driven-development .gemini/skills/content-driven-development && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "content-driven-development" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/content-driven-development into .gemini/skills/content-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-driven-development", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install adobe/skills content-driven-developmentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add adobe/skills --skill content-driven-development -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/aem/edge-delivery-services/skills/content-driven-development .github/skills/content-driven-development && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "content-driven-development" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/content-driven-development into .github/skills/content-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-driven-development", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add adobe/skills --skill content-driven-development -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install adobe/skills content-driven-development --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/aem/edge-delivery-services/skills/content-driven-development .opencode/skills/content-driven-development && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "content-driven-development" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/content-driven-development into .opencode/skills/content-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-driven-development", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
content-driven-developmentUse this when making any AEM Edge Delivery Services (EDS, Franklin, Helix) code change — new blocks, block modifications, CSS styling, bug fixes, core functionality (scripts.js, styles, delayed.js)…
Content Driven Development is an agent skill from adobe/skills. Use this when making any AEM Edge Delivery Services (EDS, Franklin, Helix) code change — new blocks, block modifications, CSS styling, bug fixes, core functionality (scripts.js, styles, delayed.js), or any JavaScript/CSS work that needs validation. Covers the Content Driven Development process — identifying or creating real test content before writing code, designing an author-friendly content model, and validating against that content throughout development. Do not use for documentation-only changes or…
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `.releaserc.json`, `CHANGELOG.md` and `package.json`).
It sits in Development, covering CSS and styling and Debugging. It works with Adobe Experience Manager and JavaScript. The repository describes itself as: Adobe Skills for Agents. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cbc9952. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlnpmgitnpxghFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
admin.da.livecarousel--aem-skills-demo--shsteimer.aem.pageFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
DA_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Content Driven Development loads about 3.7k tokens when it runs, and up to ~8.6k if it reads all its reference files. Until then it costs about 147 tokens; SKILL.md has 1,723 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from adobe/skills at commit cbc9952, republished under its Apache-2.0 licence (© adobe). 1,723 words, ~3,730 tokens.
.claude/skills/content-driven-development/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Orchestrate the Content Driven Development workflow for AEM Edge Delivery Services. This workflow ensures code is built against real content with author-friendly content models.
CRITICAL: Never start writing or modifying code without first identifying or creating the content you will use to test your changes.
Use CDD for ALL AEM development tasks:
Do NOT use for:
Content Driven Development prioritizes creating or identifying test content before writing code. This ensures:
Optional: Understanding CDD Principles
Read references/cdd-philosophy.md if:
Otherwise: Follow the workflow steps below
FIRST STEP: Use the TodoWrite tool to create a todo list with the following 8 tasks:
Start dev server (if not running)
Analyze & plan
Design content model
Identify/create test content
Implement
Lint & test
Final validation
Ship it
Mark todo complete when: Todo list created with all 8 tasks
Check if dev server is running:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000Expected: 200 (server running) or connection error (server not running)
If not running, start it:
aem up --no-open --forward-browser-logsNotes:
npm install -g @adobe/aem-clinpx -y @adobe/aem-cli up --no-open --forward-browser-logsIMPORTANT: Check the command output for errors. Common issues:
After starting, verify it's running:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000Expected: 200
Success criteria:
Mark todo complete when: Dev server confirmed running and accessible
Invoke: analyze-and-plan skill
Provide:
The analyze-and-plan skill will:
Success criteria:
Mark todo complete when: Analysis documented and acceptance criteria defined
Skip if: CSS-only changes that don't affect content structure
Invoke: content-modeling skill
Provide:
The content-modeling skill will:
Success criteria:
Mark todo complete when: Content model designed and documented
Goal: End this step with accessible test content URL(s) covering all test scenarios
Choose the best path based on your situation:
When to use: User already has content and provided URL(s)
What to do:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/path200 statusWhen to use: Building a brand new block that doesn't exist yet
What to do:
Approach 1: CMS Content (Recommended)
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/path200 statusUsing DA: If you need to push HTML content programmatically to DA (rather than asking the user to author it), invoke the da-auth skill first to obtain a valid
DA_TOKEN, then use the DA Admin API (POST https://admin.da.live/source/{org}/{repo}/{path}) to push the content and trigger a preview.
Approach 2: Local HTML (Temporary)
drafts/tmp/{block-name}.plain.htmlaem up --html-folder drafts --no-open --forward-browser-logscurl -s -o /dev/null -w "%{http_code}" http://localhost:3000/drafts/tmp/{block-name}200 statusWhen to use: Modifying, fixing, or styling an existing block
What to do:
First: Search for existing content
What find-test-content will do:
Then: Assess search results
If sufficient content found:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/path200 statusIf no content found OR insufficient coverage:
Success criteria:
Mark todo complete when: Test content identified/created and validated
Invoke: building-blocks skill
Provide:
The building-blocks skill will:
Success criteria:
Mark todo complete when: building-blocks skill reports implementation complete and working across viewports
What to do:
npm run lintIf lint errors:
npm run lint:fix for auto-fixable problems)Run existing tests:
npm testNote: Unit tests are optional and only needed for logic-heavy utilities. The testing-blocks skill (invoked by building-blocks in Step 5) handles browser testing. This step catches any remaining lint issues and runs the project's test suite.
Success criteria:
npm run lint passes with no errorsnpm test passes (if tests exist)Mark todo complete when: All lint and test checks pass
What to do:
Review acceptance criteria from Step 2
Final browser sanity check
Verify no regressions
Success criteria:
Mark todo complete when: All acceptance criteria verified and no regressions found
What to do:
Create feature branch (if not already on one):
git checkout -b block-nameStage specific files only:
git add blocks/{block-name}/{block-name}.js blocks/{block-name}/{block-name}.css
# Add only files you worked on - NEVER use `git add .`Commit with conventional commit format:
git commit -m "feat(block-name): add new block"Include relevant details in commit message and agent attribution in footer (agent adds Co-authored-by: cursor <noreply@cursor.com>)
Push to feature branch:
git push origin HEADCreate PR with preview link:
https://{branch}--{repo}--{owner}.aem.page/{path}https://carousel--aem-skills-demo--shsteimer.aem.page/Determining if you need a draft PR:
Create a draft PR when:
Create a regular PR when:
Workflow for draft PRs:
gh pr create --drafthttp://localhost:3000/drafts/tmp/[test-file]PR Description Template:
Use this template for all PRs, including all relevant preview links and adapting as needed:
## Description
Brief description of changes
[If an issue exists]
Fix #<gh-issue-id>
Test URLs:
[Repeat for all relevant test urls]
- Before: https://main--{repo}--{owner}.aem.page/{path}
- After: https://{branch}--{repo}--{owner}.aem.page/{path}
[If only local test content (draft PR):]
This PR is currently a **draft** pending creation of CMS test content.
### Next Steps to Complete PR:
[add relevant steps here]Success criteria:
Mark todo complete when: PR created and ready for review
Common mistakes that violate CDD principles:
© adobe, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in plugins/aem/edge-delivery-services/skills/content-driven-development of adobe/skills.
Open the folder on GitHubat commit cbc9952
Content Driven Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Content Driven Development this skilladobe/skills | 195 | — | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| Code ReviewOrange-OpenSource/Orange-Boosted-Bootstrap | 222 | — | ~846 | Automated safety check: Pass | MIT | |
| Webhintmanagedcode/dotnet-skills | 486 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Jazz UI Developmentgarden-co/classic-jazz | 2.5k | — | ~1.7k | Automated safety check: Pass | MIT | |
| MCP Debuggerdebugmcp/mcp-debugger | 171 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Workflow AuthoringQuintinShaw/pi-dynamic-workflows | 554 | — | ~671 | Automated safety check: Pass | MIT |
Orange-OpenSource/Orange-Boosted-Bootstrap
OUDS Web compliance code review. An agent skill from Orange-OpenSource/Orange-Boosted-Bootstrap.
managedcode/dotnet-skills
Use webhint in .NET repositories that ship browser-facing frontends.
garden-co/classic-jazz
A skill your agent uses when building, debugging, or optimizing Jazz applications.
debugmcp/mcp-debugger
A skill your agent uses when investigating a bug, failing test, or unexpected runtime behavior and the mcp-debugger MCP server is available — drives real step-through debuggers (breakpoints, stack…
QuintinShaw/pi-dynamic-workflows
Guidance for writing, editing, reviewing, and debugging JavaScript workflow code for pi-dynamic-workflows.
akeit0/okojo
Debug Okojo.Node large-app failures through sandbox/OkojoInkProbe and sandbox/OkojoNodeDebugSandbox.
adobe/skills
Scaffolds, implements, deploys and debugs Adobe Runtime actions in App Builder projects, with templates for webhooks, events, database CRUD, sequences and Asset Compute workers.
adobe/skills
Launches Chrome with an unpacked extension over CDP, opens its sidepanel, popup or options page, and hands over to cdp-connect for clicks, typing and screenshots.
adobe/skills
Extracts icons, metadata, text, forms, videos and social links from any web page with playwright-cli, with SVG icon classification and cleanup.
adobe/skills
Detect all languages used on a webpage — both declared (html@lang, hreflang alternate links, nested lang= attributes, meta content-language) and actually present in the body text (Google CLD3 via…
adobe/skills
Prepare any webpage for clean interaction by detecting and removing disruptive overlays (cookie banners, GDPR consent, modals, popups, newsletter signups, paywalls, login walls).
adobe/skills
Reduce a webpage to a structural skeleton with semantic tokens.
Works with
Categories
Use this when making any AEM Edge Delivery Services (EDS, Franklin, Helix) code change — new blocks, block modifications, CSS styling, bug fixes, core functionality (scripts.js, styles, delayed.js)…. Content Driven Development is an agent skill from adobe/skills.js), or any JavaScript/CSS work that needs validation.
Content Driven Development fits situations like: documentation-only changes; configuration changes that do not affect authoring.
Run `npx skills add adobe/skills --skill content-driven-development -a claude-code`. Or copy the skill folder (plugins/aem/edge-delivery-services/skills/content-driven-development in adobe/skills) into .claude/skills/content-driven-development in your project. Claude Code loads it when a task matches its description.
Run `npx skills add adobe/skills --skill content-driven-development -a codex`. Or copy the skill folder (plugins/aem/edge-delivery-services/skills/content-driven-development in adobe/skills) into .agents/skills/content-driven-development in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add adobe/skills --skill content-driven-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/content-driven-development, .gemini/skills/content-driven-development, .github/skills/content-driven-development and .opencode/skills/content-driven-development in your project.
Going by SKILL.md and its folder, Content Driven Development needs the command-line tools its instructions call (curl, npm, git, npx and gh) and credentials named DA_TOKEN. Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: admin.da.live and carousel--aem-skills-demo--shsteimer.aem.page; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Content Driven Development is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Content Driven Development: Code Review (Orange-OpenSource/Orange-Boosted-Bootstrap, 222 stars), Webhint (managedcode/dotnet-skills, 486 stars), Jazz UI Development (garden-co/classic-jazz, 2.5k stars) and MCP Debugger (debugmcp/mcp-debugger, 171 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
adobe (a GitHub organization) maintains it in adobe/skills, which has 195 GitHub stars. The repository holds 105 skills in this directory. The repository was last updated on October 6, 2026.
Source: adobe/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.