appbuilder-action-scaffolder
Create, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
What this skill does
# App Builder Action Scaffolder
Full lifecycle skill for Adobe Runtime actions — scaffold, implement, deploy, and debug. Place action code at `src/<extension-dir>/actions/<action-name>/index.js` and register in `src/<extension-dir>/ext.config.yaml`.
## Pattern Quick-Reference
Pick the template that matches the user's intent. Default to `assets/action-boilerplate.js` for generic actions.
| User wants | Template |
| --- | --- |
| Simple action / generic starting point | assets/action-boilerplate.js |
| Minimal prototype (bare-bones) | assets/action-scaffold-template.js |
| Database CRUD (durable records, indexes) | assets/database-action-template.js |
| Webhook receiver (I/O Events) | assets/event-webhook-template.js |
| Custom event provider | assets/event-provider-template.js |
| Journaling consumer (replayable events) | assets/journaling-consumer-template.js |
| Large payload response (>1 MB) | assets/large-payload-template.js |
| Action sequence pipeline | assets/action-sequence-template.js |
| Asset Compute worker (AEM renditions) | assets/asset-compute-worker-template.js |
| Debug Runtime action issues | references/debugging.md |
## Fast Path (for clear requests)
When the user's request maps unambiguously to a single pattern above — they name a specific pattern, reference a template, or describe a use case that clearly matches one entry — skip straight to scaffolding. Use the matched template and proceed directly.
Examples of fast-path triggers:
- "Add a webhook receiver action" → `assets/event-webhook-template.js`, scaffold directly
- "Create an Asset Compute worker" → `assets/asset-compute-worker-template.js`, scaffold directly
- "Add a database CRUD action" → `assets/database-action-template.js`, scaffold directly
- "Add an action called process-order" (simple, no ambiguity) → `assets/action-boilerplate.js`, scaffold directly
If there is any ambiguity — multiple patterns could fit, constraints are unclear, or the user hasn't specified enough to pick a single approach — fall through to the full workflow below.
## Quick Reference
- **Action entry point:** Place action code at `src/<extension-dir>/actions/<action-name>/index.js`. This keeps paths aligned with the generated extension layout.
- **Manifest location:** Register actions in `src/<extension-dir>/ext.config.yaml`. Do **not** put a root-level `runtimeManifest` in `app.config.yaml`; the CLI silently ignores it.
- **Extension directory name:** The extension directory name varies by project template:
- `src/dx-excshell-1/` — Experience Cloud Shell SPA (default)
- `src/aem-cf-console-admin-1/` — AEM Content Fragment Console extension
- `src/dx-asset-compute-worker-1/` — Asset Compute worker
Use the actual directory name from your project's `app.config.yaml` `$include` entries.
- **Web action response shape:** Return `{ statusCode, body }` for standard web actions; add `headers` only when needed.
- **Key CLI loop:** `aio app dev` for local iteration (use `aio app run` if actions use State SDK, Files SDK, or sequences), `aio rt action invoke` for direct testing, `aio app deploy` for publishing.
- **State vs database:** State for ephemeral job tracking; database for durable records, indexed queries, or document-style CRUD.
- **Events delivery choice:** Webhook for push delivery, custom event provider to publish domain events, journaling consumer for replayability or back-pressure.
- **Large payload and sequence patterns:** Large payload redirect when >1 MB response limit; action sequence for linear multi-action flows.
- **Asset Compute worker fit:** Use for AEM rendition processing; different SDK and extension layout than standard Runtime actions.
## Full Workflow (for ambiguous or complex requests)
1. Confirm target outcome, constraints, and acceptance criteria.
2. Collect current implementation context from code, environment, and Adobe configuration.
3. Apply the detailed procedure in `references/playbook.md` for this capability.
4. Produce implementation artifacts and validation evidence.
5. Run through `references/checklist.md` before final handoff.
6. Summarize decisions, risks, and immediate next actions.
## Example User Prompts
- "Add a new action to my App Builder project that calls the AEM Assets API."
- "My runtime action is timing out after 60 seconds. How do I increase the limit without breaking the app?"
- "Set up a cron action that runs every 5 minutes to sync data from an external API."
- "Create a web action that accepts file uploads and stores them using the Files SDK."
- "Store customer preferences in the App Builder Database."
- "Set up a webhook to receive I/O Events for asset changes."
- "My action response is too large — how do I handle payloads over 1MB?"
## Inputs To Request
- Current repository path and module boundaries
- Target Adobe organization, project, and workspace
- Non-functional constraints: latency, cost, compliance, and support model
- Definition of done with measurable acceptance criteria
## Deliverables
- Implementation updates for the requested capability
- Validation evidence: tests, checks, or reproducible verification steps
- Handoff summary with explicit tradeoffs and follow-up actions
## Quality Bar
- Keep decisions explicit and traceable to project constraints
- Prefer deterministic automation for repeatable steps
- Fail safely with actionable diagnostics
- Document tradeoffs and next-step risks in handoff notes
## References
- Use `references/playbook.md` for detailed execution guidance.
- Use `references/checklist.md` for pre-handoff validation.
- Use `references/prompt-pack.md` for ready-to-use execution prompts.
- Use `references/runtime-reference.md` for action structure, params, response formats, SDK usage, and CLI operations.
- Use `references/aem-apis.md` for AEM Content Fragment API surfaces — decision table, Delivery OpenAPI, Management OpenAPI, GraphQL persisted queries, and the deprecated Assets HTTP API — with auth patterns and action code for each.
- Use `references/action-patterns.md` for common action patterns, including CRUD API, cron, multi-step processing, database CRUD, webhook intake, custom event providers, journaling consumers, large payload redirects, action sequence composition, and Asset Compute workers.
- Use `assets/database-action-template.js`, `assets/event-webhook-template.js`, `assets/event-provider-template.js`, `assets/journaling-consumer-template.js`, `assets/large-payload-template.js`, `assets/action-sequence-template.js`, and `assets/asset-compute-worker-template.js` when the user request maps directly to one of the newer boilerplate patterns.
- Use `../_shared/categories/architecture-runtime.md` for Adobe service-specific guidance.
## Common Manifest Guardrail
- Keep App Builder action definitions under `application.runtimeManifest` in `app.config.yaml`.
- Do not use root-level `runtimeManifest`; App Builder CLI ignores it for action configuration.
- Validate manifest structure before deploy: `python3 ../_shared/scripts/validate_manifest_structure.py <path-to-app.config.yaml>`.
- Use `../_shared/references/appbuilder-manifest-guardrail.md` for valid and invalid examples.
## Common Issues
- **Action deployment fails:** Most deploy failures come from invalid manifest structure or missing dependencies. Check that actions are nested under `application.runtimeManifest` (or the extension `ext.config.yaml` pattern), run the manifest validator, run `npm install`, then retry `aio app deploy`.
- **Action timeout:** Runtime execution defaults to 60 seconds and can be extended to 300 seconds for non-web actions. Reduce work per invocation, move long-running tasks to async/background flows, or raise the timeout in manifest limits when the action type supports it.
- **Payload too large:** Web actions are limited to 1 MB for both request and response payloads. Trim request bodies, avoid returning large blobs inline, and use external storage or pass URLs instead.
- **IMS token not available /Related in Cloud & DevOps
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.
sf-ai-agentforce-observability
IncludedAgentforce session tracing extraction and analysis. TRIGGER when: user extracts STDM data from Data Cloud, analyzes agent session traces, debugs agent conversations via telemetry, or works with .parquet files from Agentforce. DO NOT TRIGGER when: testing agents (use sf-ai-agentforce-testing), Apex debug logs (use sf-debug), or building agents (use sf-ai-agentforce).