AWS Serverless Eda
zxkane/aws-skills
AWS serverless and event-driven architecture expert based on Well-Architected Framework.
Add or modify Commerce and external event subscriptions, configure event field extraction and filter rules in an Adobe Commerce app.
$ npx skills add adobe/skills --skill commerce-app-eventing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install adobe/skills commerce-app-eventing --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/commerce/app-management/skills/commerce-app-eventing .claude/skills/commerce-app-eventing && 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 "commerce-app-eventing" agent skill from https://github.com/adobe/skills/tree/main/plugins/commerce/app-management/skills/commerce-app-eventing into .claude/skills/commerce-app-eventing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commerce-app-eventing", 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/commerce/app-management/skills/commerce-app-eventingType 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 commerce-app-eventing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install adobe/skills commerce-app-eventing --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/commerce/app-management/skills/commerce-app-eventing .agents/skills/commerce-app-eventing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "commerce-app-eventing" agent skill from https://github.com/adobe/skills/tree/main/plugins/commerce/app-management/skills/commerce-app-eventing into .agents/skills/commerce-app-eventing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commerce-app-eventing", 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 commerce-app-eventing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install adobe/skills commerce-app-eventing --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/commerce/app-management/skills/commerce-app-eventing .cursor/skills/commerce-app-eventing && 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 "commerce-app-eventing" agent skill from https://github.com/adobe/skills/tree/main/plugins/commerce/app-management/skills/commerce-app-eventing into .cursor/skills/commerce-app-eventing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commerce-app-eventing", 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/commerce/app-management/skills/commerce-app-eventing--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 commerce-app-eventing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install adobe/skills commerce-app-eventing --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/commerce/app-management/skills/commerce-app-eventing .gemini/skills/commerce-app-eventing && 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 "commerce-app-eventing" agent skill from https://github.com/adobe/skills/tree/main/plugins/commerce/app-management/skills/commerce-app-eventing into .gemini/skills/commerce-app-eventing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commerce-app-eventing", 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 commerce-app-eventingInstalls 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 commerce-app-eventing -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/commerce/app-management/skills/commerce-app-eventing .github/skills/commerce-app-eventing && 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 "commerce-app-eventing" agent skill from https://github.com/adobe/skills/tree/main/plugins/commerce/app-management/skills/commerce-app-eventing into .github/skills/commerce-app-eventing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commerce-app-eventing", 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 commerce-app-eventing -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 commerce-app-eventing --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/commerce/app-management/skills/commerce-app-eventing .opencode/skills/commerce-app-eventing && 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 "commerce-app-eventing" agent skill from https://github.com/adobe/skills/tree/main/plugins/commerce/app-management/skills/commerce-app-eventing into .opencode/skills/commerce-app-eventing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commerce-app-eventing", 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.
commerce-app-eventingAdd or modify Commerce and external event subscriptions, configure event field extraction and filter rules in an Adobe Commerce app.
Commerce App Eventing is an agent skill from adobe/skills. Add or modify Commerce and external event subscriptions, configure event field extraction and filter rules in an Adobe Commerce app. Use when the user wants to set up event-driven workflows triggered by Commerce operations (such as order placement or catalog changes) or third-party systems. Requires a base app initialized with commerce-app-init.
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including assets (for example `assets/eventing-config.ts` and `evals/evals.json`). Compatibility notes: Requires Node.js 22+, aio CLI, and @adobe/aio-commerce-lib-app. Requires a base app initialized with commerce-app-init.
It sits in Backend & APIs, covering Event-driven systems. It works with Adobe Commerce and TypeScript. The repository describes itself as: Adobe Skills for Agents. The licence is Apache-2.0.
5 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.
Ships script files (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
developer.adobe.comgithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires Node.js 22+, aio CLI, and @adobe/aio-commerce-lib-app. Requires a base app initialized with commerce-app-init.
From compatibility in the SKILL.md frontmatter.
Commerce App Eventing loads about 3.8k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 1,328 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.
to the Commerce instance (e.g. a custom `.env` variable such as `AIO_COMMERCE_API_BASE_URL`, or a business config fieldbe/aio-commerce-lib-app`), not a custom `.env` variable or business config field. See [Calling the Commerce REST API froAutomated 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,328 words, ~3,809 tokens.
.claude/skills/commerce-app-eventing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Adds or modifies event sources — Commerce-native events or external events — in an existing app.commerce.config.ts.
Extensibility domains other than eventing (webhooks, business config) are added separately via their own skills.
app.commerce.config.ts present in the project root, andsrc/commerce-extensibility-1/ directory and installed node_modules (the @adobe/aio-commerce-lib-app dependency).app.commerce.config.ts is missing, stop and invoke commerce-app-init first (it writes the config, then runs init).src/commerce-extensibility-1/ or node_modules), run npx @adobe/aio-commerce-lib-app init before continuing. Init is idempotent — it finds the existing config, skips the interactive prompts, installs dependencies, and generates the project files.webpack-config.cjs + root tsconfig.json) that init scaffolds for a TypeScript Commerce config — see commerce-app-init. Otherwise, author actions in JavaScript.CloudIntegrationSDK (I/O Events) and commerceeventing (Adobe I/O Events for Adobe Commerce) are subscribed in the Developer Console workspace:List currently subscribed services:
aio console workspace api list --projectName <project> --workspaceName <workspace> --jsonIf either service is missing, re-subscribe with the full merged set of service codes (existing + missing). aio console workspace api add replaces the subscription list — omitting a currently-subscribed service will remove it.
aio console workspace api add \
--projectName <project> \
--workspaceName <workspace> \
--service-code <existing-codes>,CloudIntegrationSDK,commerceeventing \
--jsonIf the command fails with "product profile required" for commerceeventing, ask the user for the profile name and retry with --license-config commerceeventing=<profile>.
Ask whether the user wants to configure Commerce events, external events, or both:
eventing.commerce): native Commerce events. Names follow plugin.<segments> or observer.<segments>.eventing.external): events from third-party systems (e.g., ERP, CRM). Names are free-form ([\w\-_.]+).For each event source, gather:
<package>/<action>)env)Apply the following validation rules before writing the config. Surface any issues to the user before proceeding.
| Field | Constraint |
|---|---|
| Commerce event name | Starts with plugin. or observer.; each segment matches [a-z_]+; max 180 chars |
| External event name | [\w\-_.]+; max 180 chars |
| Provider label | Max 100 chars |
| Provider description | Max 255 chars |
| Provider key | Optional; alphanumeric + hyphens only; max 50 chars |
| Event label | Max 100 chars |
| Event description | Max 255 chars |
| Field name | [a-zA-Z0-9_\-.[\]]+ or * |
| Rule operator | greaterThan, lessThan, equal, regex, in, or onChange |
| Runtime action | <package>/<action> (e.g., my-package/handle-order-placed) |
| Event env (optional) | Non-empty array of "paas" / "saas"; omitted = all environments |
app.commerce.config.tsAdd or merge eventing.commerce and/or eventing.external into the existing config, preserving all other domains. If the config already has an eventing key, extend it rather than replacing it.
Minimal example (Commerce event):
eventing: {
commerce: [{
provider: { label: "Commerce Events Provider", description: "..." },
events: [{
name: "plugin.order_placed", // plugin.<segments> or observer.<segments>
label: "Order Placed",
description: "Triggered when a customer places an order.",
fields: [{ name: "order_id" }], // empty array = full payload; Commerce events only
runtimeActions: ["my-package/handle-order-placed"], // <package>/<action>
}],
}],
}See assets/eventing-config.ts for the full reference including external event sources.
For events that reference runtime actions via runtimeActions, create the action file under src/actions/ and register it in app.config.yaml.
Add a user-defined package to src/commerce-extensibility-1/ext.config.yaml alongside the existing app-management package. Use any name except app-management (reserved by the framework):
# src/commerce-extensibility-1/ext.config.yaml
# (add below the auto-generated app-management package)
runtimeManifest:
packages:
app-management:
# ... auto-generated — do not edit
my-app: # your package name — any name except "app-management"
actions:
handle-order-placed:
function: actions/handle-order-placed/index.js # relative to src/commerce-extensibility-1/
web: "no"
runtime: nodejs:24
annotations:
require-adobe-auth: falseThe <package>/<action> format in runtimeActions maps directly: my-app/handle-order-placed → package my-app, action handle-order-placed.
Event handlers receive a CloudEvents-shaped payload. params.data bundles the event payload together with metadata, so don't read fields directly off params.data: params.data.value is the event payload — the fields declared in the event's fields array (or the full payload if fields is empty); params.data._metadata is Commerce instance metadata; params.data.source is the merchant/environment ID pair configured in the Commerce eventing configuration.
Payload shape varies by event — check the Adobe Commerce events reference for the specific event name before deciding on a fields path. Some events nest the payload in a sub-object (e.g. value.order.entity_id); others put the fields flat on value (e.g. value.order_id), as in the example below.
// src/commerce-extensibility-1/actions/handle-order-placed/index.ts
export async function main(params: Record<string, unknown>) {
const data = params.data as Record<string, unknown>;
const value = data.value as Record<string, unknown>;
// value contains the fields declared in the event's `fields` array
// (or the full payload if fields is empty)
const orderId = value.order_id;
// process the event ...
return { statusCode: 200, body: { processed: true } };
}Numeric-looking fields aren't guaranteed to be numbers — Commerce serializes some as strings inconsistently, even within the same event (e.g. an id field delivered as "3" while a total on that same payload stays a number). Validate and coerce before comparing or forwarding a field, and skip (don't throw) when it doesn't coerce cleanly:
function toFiniteNumber(value: unknown): number {
if (typeof value === "number" && Number.isFinite(value)) {
return value;
}
if (typeof value === "string" && value.trim() !== "") {
const parsed = Number(value);
if (Number.isFinite(parsed)) {
return parsed;
}
}
throw new Error(`Could not convert "${value}" to a finite number`);
}If the handler needs to call the Commerce REST API (e.g. to fetch additional order data), use getCommerceClient from @adobe/aio-commerce-lib-app instead of reinventing config or env-based access to the Commerce instance (e.g. a custom .env variable such as AIO_COMMERCE_API_BASE_URL, or a business config field for the base URL). The SDK already stores the Commerce base URL and deployment type from the app's association, so getCommerceClient resolves them for you:
// src/commerce-extensibility-1/actions/handle-order-placed/index.ts
import { getCommerceClient } from "@adobe/aio-commerce-lib-app";
import { resolveImsAuthParams } from "@adobe/aio-commerce-lib-auth";
export async function main(params: Record<string, unknown>) {
const data = params.data as Record<string, unknown>;
const value = data.value as Record<string, unknown>;
const orderId = value.order_id;
const client = await getCommerceClient(resolveImsAuthParams(params));
const order = await client.get(`orders/${orderId}`).json();
// process the event using order details ...
return { statusCode: 200, body: { processed: true } };
}The client's base URL already includes the REST prefix and API version (rest/<store>/V1 for PaaS, V1 for SaaS) — pass only the resource path (orders/${orderId}, not V1/orders/${orderId} or rest/all/V1/orders/${orderId}).
See Accessing the Associated Commerce Instance from Runtime Actions for the full pattern, including handling the unassociated state (AssociationRecordNotFoundError).
installation actionIf eventing is the first install-requiring domain in the config (the others are webhooks, adminUi, installation.customInstallationSteps), re-run:
npx @adobe/aio-commerce-lib-app initThis is what adds the installation action to ext.config.yaml's app-management package — aio app build/aio app deploy only read the existing file, they never regenerate it. Skip this and Commerce has no endpoint to call, so the event source builds and deploys fine but never actually gets subscribed. Safe to re-run even when the action already exists.
Build the project to confirm the updated config is valid:
aio app buildA build failure with a validation error points directly to the offending config field. If this event source needed Step 4, also check that ext.config.yaml now has actions.installation under app-management.
fields: The fields property is only valid on Commerce events; external events don't support it.runtimeActions format error: Must be <package>/<action>. Both parts are lowercase alphanumeric + hyphens only.app-management package name conflict: The framework generates this package in ext.config.yaml on every build. Use any other name for your own actions.src/commerce-extensibility-1/: Do not use src/... or project-root-relative paths. actions/handle-order-placed/index.js resolves correctly; src/commerce-extensibility-1/actions/handle-order-placed/index.js does not.defineConfig not found: Ensure @adobe/aio-commerce-lib-app is installed and defineConfig is imported from @adobe/aio-commerce-lib-app/config.runtimeActions must exist in the project. Check the action files under src/commerce-extensibility-1/actions/ and create any missing stubs.getCommerceClient (@adobe/aio-commerce-lib-app), not a custom .env variable or business config field. See Calling the Commerce REST API from a handler.init wasn't re-run after adding the first install-requiring domain (Step 4) — no installation action, no install endpoint.typeof value.field === "number" — an id/qty/total field can be serialized as a string even when other fields on the same event stay numeric. Coerce with Number(...) and check Number.isFinite before using it.aio app build completes without errorsinstallation action present in ext.config.yaml when this event source requires itAfter aio app build passes:
commerce-app-webhooks to intercept Commerce operationscommerce-app-business-config to expose configurable settings in Commerce Admincommerce-app-admin-ui to add custom columns, mass actions, or menu entries in Commerce Admincommerce-app-storage to back event handlers with queryable DB storagegetCommerceClient resolves the Commerce base URL and auth for REST calls made from a handler© 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 2 other files (assets) in plugins/commerce/app-management/skills/commerce-app-eventing of adobe/skills.
Open the folder on GitHubat commit cbc9952
Commerce App Eventing 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 |
|---|---|---|---|---|---|---|
| Commerce App Eventing this skilladobe/skills | 195 | — | ~3.8k | Automated safety check: Notes | Apache-2.0 | |
| AWS Serverless Edazxkane/aws-skills | 367 | 4 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Azure Eventhub TSmicrosoft/skills | 3.1k | 6 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Azure Storage Queue TSmicrosoft/skills | 3.1k | 6 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Using Message Queuesancoleman/ai-design-components | 526 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Event Sourcingcitypaul/.dotfiles | 739 | — | ~7.8k | Automated safety check: Pass | Custom licence |
zxkane/aws-skills
AWS serverless and event-driven architecture expert based on Well-Architected Framework.
microsoft/skills
Build event streaming applications using Azure Event Hubs SDK for JavaScript (@azure/event-hubs).
microsoft/skills
Azure Queue Storage JavaScript/TypeScript SDK (@azure/storage-queue) for message queue operations.
ancoleman/ai-design-components
Async communication patterns using message brokers and task queues.
citypaul/.dotfiles
Event sourcing patterns for functional TypeScript — persist state as an append-only log of past events and rebuild it by folding them.
ancoleman/ai-design-components
Build event streaming and real-time data pipelines with Kafka, Pulsar, Redpanda, Flink, and Spark.
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
Add or modify Commerce and external event subscriptions, configure event field extraction and filter rules in an Adobe Commerce app. Commerce App Eventing is an agent skill from adobe/skills. Add or modify Commerce and external event subscriptions, configure event field extraction and filter rules in an Adobe Commerce app.
Commerce App Eventing fits situations like: the user wants to set up event-driven workflows triggered by Commerce operations (such as order placement; catalog changes); third-party systems.
Run `npx skills add adobe/skills --skill commerce-app-eventing -a claude-code`. Or copy the skill folder (plugins/commerce/app-management/skills/commerce-app-eventing in adobe/skills) into .claude/skills/commerce-app-eventing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add adobe/skills --skill commerce-app-eventing -a codex`. Or copy the skill folder (plugins/commerce/app-management/skills/commerce-app-eventing in adobe/skills) into .agents/skills/commerce-app-eventing 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 commerce-app-eventing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/commerce-app-eventing, .gemini/skills/commerce-app-eventing, .github/skills/commerce-app-eventing and .opencode/skills/commerce-app-eventing in your project.
Going by SKILL.md and its folder, Commerce App Eventing needs TypeScript for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: Node.js. Compatibility (from SKILL.md): Requires Node.js 22+, aio CLI, and @adobe/aio-commerce-lib-app. Requires a base app initialized with commerce-app-init. .
SKILL.md names 2 domains. As links in the text: developer.adobe.com and github.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.
Commerce App Eventing 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.8k 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.
Skills that share tags, products or a category with Commerce App Eventing: AWS Serverless Eda (zxkane/aws-skills, 367 stars), Azure Eventhub TS (microsoft/skills, 3.1k stars), Azure Storage Queue TS (microsoft/skills, 3.1k stars) and Using Message Queues (ancoleman/ai-design-components, 526 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.