Ts2moonbit Migration
mizchi/skills
Migrate a TypeScript codebase to MoonBit on the js target while keeping the same JavaScript API contract, using mizchi/js (JS/Web/Node bindings), mizchi/x (cross-target async backend…
Use this when installing, running, or configuring the Adobe AEM CLI (@adobe/aem-cli, formerly the helix-cli npm package; commands aem up, aem import, aem content), when aem up fails (port conflicts…
$ npx skills add adobe/skills --skill aem-cli -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install adobe/skills aem-cli --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/aem-cli .claude/skills/aem-cli && 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 "aem-cli" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/aem-cli into .claude/skills/aem-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aem-cli", 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/aem-cliType 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 aem-cli -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install adobe/skills aem-cli --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/aem-cli .agents/skills/aem-cli && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "aem-cli" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/aem-cli into .agents/skills/aem-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aem-cli", 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 aem-cli -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install adobe/skills aem-cli --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/aem-cli .cursor/skills/aem-cli && 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 "aem-cli" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/aem-cli into .cursor/skills/aem-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aem-cli", 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/aem-cli--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 aem-cli -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install adobe/skills aem-cli --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/aem-cli .gemini/skills/aem-cli && 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 "aem-cli" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/aem-cli into .gemini/skills/aem-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aem-cli", 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 aem-cliInstalls 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 aem-cli -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/aem-cli .github/skills/aem-cli && 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 "aem-cli" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/aem-cli into .github/skills/aem-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aem-cli", 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 aem-cli -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 aem-cli --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/aem-cli .opencode/skills/aem-cli && 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 "aem-cli" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services/skills/aem-cli into .opencode/skills/aem-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aem-cli", 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.
aem-cliUse this when installing, running, or configuring the Adobe AEM CLI (@adobe/aem-cli, formerly the helix-cli npm package; commands aem up, aem import, aem content), when aem up fails (port conflicts…
Aem CLI is an agent skill from adobe/skills. Use this when installing, running, or configuring the Adobe AEM CLI (@adobe/aem-cli, formerly the helix-cli npm package; commands aem up, aem import, aem content), when aem up fails (port conflicts, cert errors, proxy 404s, pipeline vs. local-file confusion), or when migrating from the old helix-cli package. Covers installation, the local Edge Delivery dev server, .env / AEM configuration, HTTPS/TLS, proxy and certificate trust, content sync with da.live, and troubleshooting. For da.live content-format rules or…
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `.releaserc.json`, `CHANGELOG.md` and `package.json`).
It sits in Backend & APIs, covering API design. It works with Adobe Experience Manager and npm. 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 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:
npmcurljqnpxopensslbrewchocogoFrom 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.livecontent.da.liveAlso links to:
npmjs.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
AEM_TLS_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Aem CLI loads about 2.6k tokens when it runs, and up to ~4.3k if it reads all its reference files. Until then it costs about 159 tokens; SKILL.md has 882 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.
ion, the local Edge Delivery dev server, .env / AEM_* configuration, HTTPS/TLS, proxy and certificate trust, content syn## 3. `.env` ConfigurationAll options can be persisted in `.env` at the project root; loaded automatically. `[verified]`# .env example### Persisting TLS in .envset it in the shell profile or CI, not `.env`.mypath` (or `AEM_HTML_FOLDER=mypath` in `.env`) |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). 882 words, ~2,594 tokens.
.claude/skills/aem-cli/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Local development tool for AEM Edge Delivery Services. Three commands: aem up (local dev
server), aem import (import server + UI), aem content (da.live content sync).
Binary: aem (primary), hlx (alias from the former helix-cli package, renamed to
@adobe/aem-cli at v15.0.0).
Prerequisite: Node.js 12.11 or newer (Node 22 LTS recommended). [verified]
# Global install
npm install -g @adobe/aem-cli
# One-off via npx (no global install needed)
npx -y @adobe/aem-cli upVerify:
aem --version # or: hlx --versionIf npm install -g @adobe/aem-cli fails with File exists: …/hlx, the old package is still
installed and owns the binary. Uninstall it first (npm package scoped under @adobe, named
helix-cli): [verified]
npm uninstall -g @adobe/helix-cli
npm install -g @adobe/aem-cliThe binary name changes from hlx to aem; both work after installation because aem-cli
ships hlx as an alias.
aem up — Local Dev ServerAgent-standard invocation:
aem up --no-open --forward-browser-logsCheck the server is running:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000
# Expected: 200| Flag | What it does |
|---|---|
--no-open | Do not open a browser window on startup |
--forward-browser-logs | Forward browser console messages (log, error, warn, info) to the terminal |
--port <n> | Listen on a different port (default: 3000) |
--addr <addr> | Bind address; use * to allow external connections (default: 127.0.0.1) |
--url <url> | Origin URL to proxy content from (overrides the project's default pages URL) |
--html-folder <dir> | Serve local HTML files from <dir> without extensions |
--html-mount <path> | URL path where --html-folder files are served (default: /<dir>) |
--no-livereload | Disable automatic browser reload on file changes |
--stop-other | Stop another AEM CLI instance on the same port before starting (default: true) |
--tls-cert <file> | Path to .pem file for TLS (see §4) |
--tls-key <file> | Path to .key file for TLS (see §4) |
--allow-insecure | Allow insecure (self-signed cert) requests to the upstream server |
--print-index | Print indexed records for the current page (debugging) |
--site-token <token> | Site token for CLI access to the website |
--cookies | Proxy all cookies (default: only hlx-auth-token is proxied) |
--html-folder: without it, local HTML files are never served — all requests proxy to the
remote pipeline, returning 404 for local-only paths. [verified]
aem up --html-folder drafts --no-open --forward-browser-logs
# Files in ./drafts/ are served at /drafts/<name> (no extension needed).env ConfigurationAll options can be persisted in .env at the project root; loaded automatically. [verified]
# .env example
AEM_PORT=8080
AEM_PAGES_URL=https://stage.myproject.com
AEM_FORWARD_BROWSER_LOGS=true
AEM_HTML_FOLDER=drafts
AEM_TLS_CERT=server.crt
AEM_TLS_KEY=server.key
AEM_OPEN=/productsSee references/command-reference.md for the complete
AEM_* environment variable reference with defaults.
Install mkcert (brew install mkcert on macOS, choco install mkcert on Windows,
go install filippo.io/mkcert@latest elsewhere), then:
mkcert -install # one-time CA install
mkcert -cert-file server.crt -key-file server.key localhost 127.0.0.1
aem up --tls-cert server.crt --tls-key server.keyopenssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes \
-out server.crt -keyout server.key -subj "/CN=localhost"
aem up --tls-cert server.crt --tls-key server.keyAEM_TLS_CERT=server.crt
AEM_TLS_KEY=server.keyaem up fails with unable to get local issuer certificate behind HTTPS-intercepting proxies.
Export the corporate CA cert from your browser or ask IT, then set:
# macOS / Linux
export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.crt
aem up
# Windows
set NODE_EXTRA_CA_CERTS=./certs/corporate-ca.pem
aem upNODE_EXTRA_CA_CERTS is a Node built-in — set it in the shell profile or CI, not .env.
Proxy env vars:
| Variable | Purpose |
|---|---|
HTTP_PROXY | Proxy for HTTP requests |
HTTPS_PROXY | Proxy for HTTPS requests |
ALL_PROXY | Fallback for either protocol |
NO_PROXY | Comma-separated hosts to bypass; * disables all proxies |
aem import — Import ServerLocal import server (default port 3001) serving the helix-importer-ui.
aem import # opens Importer UI in browser at port 3001
aem import --no-open # headless / background start
aem import --port 3002 # different portKey flags:
| Flag | Default | What it does |
|---|---|---|
--port | 3001 | Import server port |
--no-open | — | Do not open the browser window |
--allow-insecure | true | Allow self-signed certs on the proxied site |
--ui-repo <url> | helix-importer-ui repo on GitHub | Custom Importer UI repo |
--skip-ui | false | Skip downloading/installing the UI |
--headers-file <file> | — | JSON file of custom headers for proxy requests |
--cache <dir> | — | Cache proxied responses to a local folder |
--dump-headers | false | Print request headers to console for debugging |
--tls-cert / --tls-key | — | TLS for the import server itself (see §4) |
Workflow: For writing the import.js transformation script or running the full import
pipeline, use the page-import or generate-import-html skills. This skill covers only
starting and configuring the server.
aem content — da.live Content Syncaem content clone [--path /] # auth via browser popup; clones into ./content/
aem content status # show added / modified / deleted files
aem content diff [path] # diff local vs remote
aem content merge [path] # sync remote changes into local files
aem content add <files..> # stage changes (like git add)
aem content commit -m "..." # commit staged changes (like git commit)
aem content push # upload committed changes to da.live
aem content push --force # overwrite remote on conflictAuth token cached at .hlx/.da-token.json (gitignored); browser OAuth on first use.
Read the token directly to authenticate curl calls:
TOKEN=$(jq -r .access_token .hlx/.da-token.json)aem content push silently no-ops on binary files (images, PDFs, fonts). [verified]
Verify a binary upload landed:
curl -sI https://content.da.live/<org>/<repo>/path/to/image.png | grep -i "content-type"If it 404s, upload the binary directly via the DA Source API:
TOKEN=$(jq -r .access_token .hlx/.da-token.json)
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: image/png" \
--data-binary @./image.png \
"https://admin.da.live/source/<org>/<repo>/path/to/image.png"Pre-upload normalization strips EDS icon decorations (<span class="icon icon-X"> etc.).
[verified] For byte-faithful EDS HTML, POST directly to the DA Source API:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: text/html" \
--data-binary @./page.html \
"https://admin.da.live/source/<org>/<repo>/path/to/page.html"See the da-content skill (platform reference §7) for the DA Source API contract and rate limits.
| Symptom | Cause | Fix |
|---|---|---|
npm install -g @adobe/aem-cli → File exists: …/hlx | old helix-cli package still owns the binary | uninstall the old package (see §1) then reinstall |
aem up → EADDRINUSE: address already in use :::3000 | Port 3000 is taken | Pass --port <other> or kill the process on 3000 |
aem up → unable to get local issuer certificate | Corporate proxy intercepts TLS | Export corp CA cert → export NODE_EXTRA_CA_CERTS=/path/to/ca.crt |
localhost:3000/mypath returns 404 | Local HTML file in mypath/ not mounted | Add --html-folder mypath (or AEM_HTML_FOLDER=mypath in .env) |
aem up → pipeline 404 for pages that exist live | Wrong origin URL proxied | Pass --url https://your-pages-url.aem.page |
aem content push reports success but binary is missing | CLI silently no-ops on binaries | Upload binary via DA Source API (see §7) |
aem content push strips icon spans from HTML | Pre-upload normalization removes EDS decorations | POST directly to DA Source API for byte-faithful upload |
aem import UI doesn't load | Port 3001 in use, or UI download failed | Try --port 3002; or --skip-ui and open the UI separately |
AEM_* env-var tables for all commands@adobe/aem-cli
(the GitHub repo is named helix-cli for historical reasons)helix-importer-ui) — served by aem import© 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 (references) in plugins/aem/edge-delivery-services/skills/aem-cli of adobe/skills.
Open the folder on GitHubat commit cbc9952
Aem CLI 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 |
|---|---|---|---|---|---|---|
| Aem CLI this skilladobe/skills | 195 | — | ~2.6k | Automated safety check: Notes | Apache-2.0 | |
| Ts2moonbit Migrationmizchi/skills | 356 | — | ~4.2k | Automated safety check: Pass | None | |
| SDKkortix-ai/suna | 20k | — | ~9.6k | Automated safety check: Pass | Custom licence | |
| ToolJet Marketplace Plugin BuilderToolJet/ToolJet | 41k | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| API DesignerJeffallan/claude-skills | 12k | 2 repos | ~2k | Automated safety check: Pass | MIT | |
| Nodejs Backend Patternsever-works/ever-works | 158 | 17 repos | ~4k | Automated safety check: Pass | AGPL-3.0 |
mizchi/skills
Migrate a TypeScript codebase to MoonBit on the js target while keeping the same JavaScript API contract, using mizchi/js (JS/Web/Node bindings), mizchi/x (cross-target async backend…
kortix-ai/suna
The hard rules for editing @kortix/sdk (packages/sdk) — a PUBLISHED npm package with constraints no other package in this repo has: TDD is mandatory (failing test first, gates run and pasted every…
ToolJet/ToolJet
Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.
Jeffallan/claude-skills
Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.
ever-works/ever-works
Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices.
fosrl/pangolin
Use whenever asked to add, create, or scaffold a CRUD endpoint, router, or entity in this repo's server (create/list/get/update/delete handlers, new…
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 installing, running, or configuring the Adobe AEM CLI (@adobe/aem-cli, formerly the helix-cli npm package; commands aem up, aem import, aem content), when aem up fails (port conflicts…. Aem CLI is an agent skill from adobe/skills. Use this when installing, running, or configuring the Adobe AEM CLI (@adobe/aem-cli, formerly the helix-cli npm package; commands aem up, aem import, aem content), when aem up fails (port conflicts, cert errors, proxy 404s, pipeline vs.
Aem CLI fits situations like: tasks that involve API design.
Run `npx skills add adobe/skills --skill aem-cli -a claude-code`. Or copy the skill folder (plugins/aem/edge-delivery-services/skills/aem-cli in adobe/skills) into .claude/skills/aem-cli in your project. Claude Code loads it when a task matches its description.
Run `npx skills add adobe/skills --skill aem-cli -a codex`. Or copy the skill folder (plugins/aem/edge-delivery-services/skills/aem-cli in adobe/skills) into .agents/skills/aem-cli 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 aem-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/aem-cli, .gemini/skills/aem-cli, .github/skills/aem-cli and .opencode/skills/aem-cli in your project.
Going by SKILL.md and its folder, Aem CLI needs the command-line tools its instructions call (npm, curl, jq, npx, openssl and brew) and credentials named AEM_TLS_KEY. Our summary lists: Node.js; A credential in AEM_TLS_KEY.
SKILL.md names 3 domains. In commands or code: admin.da.live and content.da.live; the agent is likely to contact these when it follows the instructions. As links in the text: npmjs.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Aem CLI 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 2.6k tokens (SKILL.md is roughly 10k 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 1.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Aem CLI: Ts2moonbit Migration (mizchi/skills, 356 stars), SDK (kortix-ai/suna, 20k stars), ToolJet Marketplace Plugin Builder (ToolJet/ToolJet, 41k stars) and API Designer (Jeffallan/claude-skills, 12k 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.