Verifying Modules
telagod/code-abyss
Scans directory structure, detects missing documentation, and verifies code-doc synchronization.
Generate comprehensive technical documentation for developers taking over an AEM Edge Delivery Services project.
$ npx skills add adobe/skills --skill handover-developer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install adobe/skills handover-developer --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/project-management/skills/handover-developer .claude/skills/handover-developer && 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 "handover-developer" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/project-management/skills/handover-developer into .claude/skills/handover-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handover-developer", 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/project-management/skills/handover-developerType 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 handover-developer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install adobe/skills handover-developer --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/project-management/skills/handover-developer .agents/skills/handover-developer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "handover-developer" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/project-management/skills/handover-developer into .agents/skills/handover-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handover-developer", 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 handover-developer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install adobe/skills handover-developer --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/project-management/skills/handover-developer .cursor/skills/handover-developer && 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 "handover-developer" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/project-management/skills/handover-developer into .cursor/skills/handover-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handover-developer", 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/project-management/skills/handover-developer--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 handover-developer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install adobe/skills handover-developer --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/project-management/skills/handover-developer .gemini/skills/handover-developer && 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 "handover-developer" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/project-management/skills/handover-developer into .gemini/skills/handover-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handover-developer", 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 handover-developerInstalls 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 handover-developer -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/project-management/skills/handover-developer .github/skills/handover-developer && 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 "handover-developer" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/project-management/skills/handover-developer into .github/skills/handover-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handover-developer", 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 handover-developer -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 handover-developer --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/project-management/skills/handover-developer .opencode/skills/handover-developer && 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 "handover-developer" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/project-management/skills/handover-developer into .opencode/skills/handover-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handover-developer", 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.
handover-developerGenerate comprehensive technical documentation for developers taking over an AEM Edge Delivery Services project.
Handover Developer is an agent skill from adobe/skills. Generate comprehensive technical documentation for developers taking over an AEM Edge Delivery Services project. Use when onboarding developers, creating technical handover documentation, or documenting a project's architecture — analyzes codebase structure, custom implementations, design tokens, and produces a complete developer guide.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `.releaserc.json`, `CHANGELOG.md` and `package.json`).
It sits in Frontend & Design, covering Technical documentation and Design tokens. It works with Adobe Experience Manager. The repository describes itself as: Adobe Skills for Agents. The licence is Apache-2.0.
7 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 these tools, so the agent can use them without asking each time:
ReadWriteEditBashSkillGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodegitcurlFrom 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.hlx.pageFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
AUTH_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Handover Developer loads about 3k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 829 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Bash, Skill, Glob, GrepAutomated 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). 829 words, ~3,047 tokens.
.claude/skills/handover-developer/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Generate a complete technical guide for developers. Analyzes the codebase and produces actionable documentation that enables developers to understand, maintain, and extend the project.
Skip if allGuides is set in .claude-plugin/project-config.json (orchestrator already validated).
ALL_GUIDES=$(cat .claude-plugin/project-config.json 2>/dev/null | node -e "
const d = require('fs').readFileSync(0,'utf8');
try { console.log(JSON.parse(d).allGuides ? 'true' : ''); } catch(e) { console.log(''); }
")
if [ -z "$ALL_GUIDES" ]; then
cd "$(git rev-parse --show-toplevel)"
ls scripts/aem.js
fiIf scripts/aem.js does not exist, tell the user this skill requires an AEM Edge Delivery Services project and stop.
All subsequent steps operate from project root. Guides are created at project-guides/.
- [ ] Phase 0: Get org name and authenticate
- [ ] Phase 1: Gather project information
- [ ] Phase 2: Analyze project architecture
- [ ] Phase 3: Document design system
- [ ] Phase 4: Document blocks, models, and templates
- [ ] Phase 5: Generate PDFcat .claude-plugin/project-config.json 2>/dev/null | node -e "
const d = require('fs').readFileSync(0,'utf8');
try { const o = JSON.parse(d).org; if(o) console.log('org: ' + o); } catch(e) {}
"If no org name is found, ask the user:
"What is your Config Service organization name? This is the
{org}part of your Edge Delivery Services URLs (e.g.,https://main--site--{org}.aem.page). The org name may differ from your GitHub organization."
Ask as a plain text question — not AskUserQuestion with options. Organization name is mandatory.
mkdir -p .claude-plugin
grep -qxF '.claude-plugin/' .gitignore 2>/dev/null || echo '.claude-plugin/' >> .gitignore
if [ -f .claude-plugin/project-config.json ]; then
cat .claude-plugin/project-config.json | sed 's/"org"[[:space:]]*:[[:space:]]*"[^"]*"/"org": "{ORG_NAME}"/' > /tmp/project-config.json && mv /tmp/project-config.json .claude-plugin/project-config.json
else
echo '{"org": "{ORG_NAME}"}' > .claude-plugin/project-config.json
fiReplace {ORG_NAME} with the actual organization name.
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) {}
")
if [ -z "$AUTH_TOKEN" ]; then
echo "AUTH_REQUIRED"
fiIf AUTH_REQUIRED, invoke the auth skill:
Skill({ skill: "aem-project-management:auth" })git remote -v | head -1
git branch -a | head -10Extract: repository owner, repo name, main branch name.
ls helix-config.yaml 2>/dev/null && echo "Uses legacy helix-config" || echo "Uses Config Service (modern)"The Config Service API is the only reliable source for site information. Do not use fstab.yaml, README, or git remote URLs.
ORG=$(cat .claude-plugin/project-config.json | node -e "
const d = require('fs').readFileSync(0,'utf8');
console.log(JSON.parse(d).org || '');
")
AUTH_TOKEN=$(node -e "
const fs = require('fs');
try {
const t = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ims-token.json', 'utf8'));
process.stdout.write(t.authToken || '');
} catch (e) {}
")
curl -s -H "x-auth-token: ${AUTH_TOKEN}" -H "Accept: application/json" \
"https://admin.hlx.page/config/${ORG}/sites.json" > .claude-plugin/sites-config.json
node -e "
const d = require('fs').readFileSync('.claude-plugin/sites-config.json', 'utf8');
const j = JSON.parse(d);
if (!j.sites || !j.sites.length) {
console.error('No sites returned — verify org name and re-authenticate if needed');
process.exit(1);
}
console.log('Found ' + j.sites.length + ' site(s): ' + j.sites.map(s => s.name).join(', '));
"If validation fails, verify the org name is correct, re-authenticate, and retry.
Fetch per-site config:
curl -s -H "x-auth-token: ${AUTH_TOKEN}" \
"https://admin.hlx.page/config/${ORG}/sites/{site-name}.json"Extract: code.owner, code.repo, content.source.url, content.source.type.
Multiple sites = repoless setup. Single site = standard setup. Record this — it affects the aem up local dev instructions.
cat .nvmrc 2>/dev/null || cat package.json | grep -A2 '"engines"'Read site config:
cat .claude-plugin/sites-config.jsonls -la && ls -la blocks/ && ls -la scripts/ && ls -la styles/
ls -la templates/ 2>/dev/null || echo "No templates folder"Only document files that were actually customized.
git log --oneline --follow {file_path} | head -5
git log --format="%an - %s" --follow {file_path} | head -5| Git History | Action |
|---|---|
| Only "Initial commit" | Skip — boilerplate default, never worked on |
Only aem-aemy[bot] commits | Skip — auto-generated |
| Multiple commits by team | Document — customized |
grep -E "^export" scripts/aem.jsDocument which functions the project imports from aem.js (e.g., sampleRUM, loadHeader, loadFooter, decorateBlock, loadBlock, loadCSS).
grep -E "^import|^export|^function|^async function|buildAutoBlocks|loadTemplate|getLanguage|getSiteRoot|decorateMain|loadEager|loadLazy|loadDelayed" scripts/scripts.jsDocument:
| Pattern | What to Document |
|---|---|
import statements | What it imports from aem.js and utils.js |
loadEager / loadLazy | Any custom logic added to E-L-D phases |
buildAutoBlocks | Auto-blocking logic |
loadTemplate / template handling | Template system |
getLanguage / language detection | Multi-language setup |
getSiteRoot / site detection | Multi-site configuration |
| External script loading | Which phase — flag if in eager (performance risk) |
grep -E "^import|function|google|analytics|gtag|alloy|martech|OneTrust|launch|chatbot|widget" scripts/delayed.jsDocument analytics integrations, marketing tools, performance monitoring. Confirm no render-critical code is in this file.
grep -E "^export|^function" scripts/utils.js 2>/dev/null || echo "No utils.js"
ls scripts/*.js
grep -rl "utils.js" blocks/ scripts/ 2>/dev/nullDocument shared utility functions and which blocks/scripts import them.
grep -A 20 '"dependencies"' package.json 2>/dev/null | head -25
grep -r "cdn\|unpkg\|jsdelivr" scripts/ blocks/ --include="*.js" 2>/dev/nullgrep -E "^\s*--" styles/styles.cssOrganize into categories: Typography, Colors, Spacing, Layout.
grep -E "@font-face|font-family|font-weight|src:" styles/fonts.css 2>/dev/null
ls fonts/ 2>/dev/nullDocument: font files and formats, family names, weights, fallback fonts.
grep -E "@media.*min-width|@media.*max-width" styles/styles.css | sort -uStandard breakpoints: Mobile < 600px, Tablet 600-899px, Desktop 900px+, Large 1200px+. Document any deviations.
grep -A 5 "\.section\." styles/styles.css
grep -A 5 "\.section\[" styles/styles.cssRun silently — do not show output to user.
aem-aemy[bot] commitshead -30 blocks/{blockname}/{blockname}.js
grep -E "^\." blocks/{blockname}/{blockname}.css | head -30
grep -E "classList\.contains|classList\.add" blocks/{blockname}/{blockname}.jsDocument for each customized block:
| Field | What to Record |
|---|---|
| Name | Block folder name |
| Purpose | What it does |
| DOM Input | Expected HTML structure from CMS |
| DOM Output | Transformed structure after decoration |
| Variants | CSS classes that modify behavior |
| Dependencies | External libraries, other blocks, utils |
Apply boilerplate filtering to models/*.json. Exclude standard boilerplate models (_page.json, _section.json, _button.json, _image.json, _text.json, _title.json) if unchanged. Skip section if all models are boilerplate.
Apply boilerplate filtering to templates/*/. For each customized template, document purpose, how it's applied (template: name in metadata), and what it changes.
Save to project-guides/DEVELOPER-GUIDE.md (run mkdir -p project-guides first).
Read resources/developer-guide-template.md for the full document structure. Fill in all sections using data gathered in Phases 1–4 — replace every [placeholder] with actual project values.
Save the completed markdown to project-guides/DEVELOPER-GUIDE.md with YAML frontmatter (title, date using full date format e.g., "February 17, 2026"). Then immediately invoke PDF conversion:
Skill({ skill: "aem-project-management:whitepaper", args: "project-guides/DEVELOPER-GUIDE.md project-guides/DEVELOPER-GUIDE.pdf" })The whitepaper skill auto-cleans source files. Final output: project-guides/DEVELOPER-GUIDE.pdf.
Inform the user: "Developer guide complete: project-guides/DEVELOPER-GUIDE.pdf"
| Category | Check |
|---|---|
| Data Source | Config Service API called (https://admin.hlx.page/config/{ORG}/sites.json) |
| Data Source | Site list from API response, not fstab.yaml or codebase analysis |
| Data Source | Repoless/standard determination from Config Service, not inferred from code |
| Content | Quick Reference with all project URLs |
| Content | Architecture overview accurate to project |
| Content | Design system fully documented (tokens, fonts, breakpoints) |
| Content | Project-specific blocks documented |
| Content | Custom scripts.js functions documented |
| Content | delayed.js integrations documented |
| Content | Templates documented (if applicable) |
| Content | Local development setup verified |
| Content | Common tasks have clear instructions |
| Content | Troubleshooting section covers common issues |
| Output | PDF generated at project-guides/DEVELOPER-GUIDE.pdf |
| Output | All source files cleaned up (only PDF remains) |
Communication: Never use "EDS" as an acronym — always write "Edge Delivery Services" or "AEM Edge Delivery Services" in all output and documentation.
© 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 4 other files in plugins/aem/project-management/skills/handover-developer of adobe/skills.
Open the folder on GitHubat commit cbc9952
Handover Developer 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 |
|---|---|---|---|---|---|---|
| Handover Developer this skilladobe/skills | 195 | — | ~3k | Automated safety check: Notes | Apache-2.0 | |
| Verifying Modulestelagod/code-abyss | 244 | — | ~431 | Automated safety check: Notes | MIT | |
| DESIGN.md Creatoribelick/ui-skills | 9.4k | — | ~4k | Automated safety check: Pass | MIT | |
| Design Handoff Specgetcrew44/crew44 | 356 | — | ~680 | Automated safety check: Pass | MIT | |
| Readme I18nY80/bmm | 343 | 2 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Kaizen UINVIDIA/Personal-AI-Router | 1.6k | — | ~4.7k | Automated safety check: Pass | Apache-2.0 |
telagod/code-abyss
Scans directory structure, detects missing documentation, and verifies code-doc synchronization.
ibelick/ui-skills
Writes or updates a DESIGN.md for one product from its repository or a public URL, recording the design language and tokens that the evidence supports.
getcrew44/crew44
Produces an implementation-ready spec from a finished design, covering layout, tokens, states, responsive behavior, edge cases, motion and accessibility, so engineers do not have to guess.
Y80/bmm
A skill your agent uses when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized…
NVIDIA/Personal-AI-Router
Kaizen UI (KUI) component library and design-pattern advisor for NVIDIA applications.
HorusGoul/eslint-plugin-react-render-types
Composition patterns for building React components with @renders type annotations from eslint-plugin-react-render-types.
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
Generate comprehensive technical documentation for developers taking over an AEM Edge Delivery Services project. Handover Developer is an agent skill from adobe/skills. Generate comprehensive technical documentation for developers taking over an AEM Edge Delivery Services project.
Handover Developer fits situations like: onboarding developers; creating technical handover documentation; documenting a projects architecture — analyzes codebase structure; custom implementations.
Run `npx skills add adobe/skills --skill handover-developer -a claude-code`. Or copy the skill folder (plugins/aem/project-management/skills/handover-developer in adobe/skills) into .claude/skills/handover-developer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add adobe/skills --skill handover-developer -a codex`. Or copy the skill folder (plugins/aem/project-management/skills/handover-developer in adobe/skills) into .agents/skills/handover-developer 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 handover-developer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/handover-developer, .gemini/skills/handover-developer, .github/skills/handover-developer and .opencode/skills/handover-developer in your project.
Going by SKILL.md and its folder, Handover Developer needs the command-line tools its instructions call (node, git and curl) and credentials named AUTH_TOKEN. Our summary lists: Node.js; A credential in AUTH_TOKEN. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Skill, Glob, Grep.
SKILL.md names 1 domain. In commands or code: admin.hlx.page; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Handover Developer 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 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Handover Developer: Verifying Modules (telagod/code-abyss, 244 stars), DESIGN.md Creator (ibelick/ui-skills, 9.4k stars), Design Handoff Spec (getcrew44/crew44, 356 stars) and Readme I18n (Y80/bmm, 343 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.