1---2name: aem-workflow-23description: Single entry point for all AEM as a Cloud Service Workflow skills. Covers workflow model design, custom process step and participant chooser development, launcher configuration, workflow triggering, and production support including debugging stuck/failed workflows, triaging incidents with Cloud Manager logs, thread pool analysis, and Sling Job diagnostics for the Granite Workflow Engine.4license: Apache-2.05---67# AEM Cloud Service Workflow89Route user requests to the appropriate specialist skill based on intent.1011## Intent Router1213| User Intent | Skill | Path |14|---|---|---|15| Create a workflow model, add steps, design OR/AND splits, configure variables | Model Design | [workflow-model-design/SKILL.md](./workflow-model-design/SKILL.md) |16| Implement a custom WorkflowProcess step, ParticipantStepChooser, OSGi service registration | Development | [workflow-development/SKILL.md](./workflow-development/SKILL.md) |17| Start a workflow from code, HTTP API, Timeline UI, Manage Publication | Triggering | [workflow-triggering/SKILL.md](./workflow-triggering/SKILL.md) |18| Configure a launcher, auto-start on asset upload, overlay OOTB launcher | Launchers | [workflow-launchers/SKILL.md](./workflow-launchers/SKILL.md) |19| Workflow stuck, failed step, missing Inbox task, stale instances, thread pool exhaustion, purge | Debugging | [workflow-debugging/SKILL.md](./workflow-debugging/SKILL.md) |20| Classify a workflow incident, determine required logs, Splunk queries, data gathering checklist | Triaging | [workflow-triaging/SKILL.md](./workflow-triaging/SKILL.md) |21| End-to-end lifecycle or requests spanning multiple concerns | Orchestrator | [workflow-orchestrator/SKILL.md](./workflow-orchestrator/SKILL.md) |2223## How to Use24251. Match the user's request to one row in the Intent Router table above.262. Read the linked SKILL.md for that specialist skill.273. Follow the workflow, references, and output contract defined in that skill.284. For broad or ambiguous requests that span multiple concerns, use the **Orchestrator** which coordinates across all specialist skills and loads foundation references.2930## Cloud Service Constraints3132| Constraint | Detail |33|---|---|34| No JMX | No `retryFailedWorkItems`, `countStaleWorkflows`, `restartStaleWorkflows`, `purgeCompleted` via JMX |35| `/libs` is immutable | Never write to `/libs`; use `/conf/global/` or `/apps/` overlays |36| Model design-time path | `/conf/global/settings/workflow/models/<id>` |37| Model runtime path (for API calls) | `/var/workflow/models/<id>` |38| Launcher config path | `/conf/global/settings/workflow/launcher/config/` |39| Service users | Always use `workflow-process-service` sub-service; never admin credentials |40| OSGi annotations | DS R6 (`@Component`, `@Reference` from `org.osgi.service.component.annotations`) |41| Deploy via | Cloud Manager pipeline — no Package Manager in production |4243## Specialist Skills4445- [workflow-model-design/SKILL.md](./workflow-model-design/SKILL.md) — model structure, step types, variables, and model XML46- [workflow-development/SKILL.md](./workflow-development/SKILL.md) — WorkflowProcess, ParticipantStepChooser, metadata, and error handling47- [workflow-triggering/SKILL.md](./workflow-triggering/SKILL.md) — Timeline UI, Manage Publication, WorkflowSession API, and HTTP API48- [workflow-launchers/SKILL.md](./workflow-launchers/SKILL.md) — launcher configuration, JCR event binding, and OOTB overlay49- [workflow-debugging/SKILL.md](./workflow-debugging/SKILL.md) — stuck workflows, failed steps, thread pools, Sling Jobs, and purge50- [workflow-triaging/SKILL.md](./workflow-triaging/SKILL.md) — symptom classification, log patterns, Splunk queries, and data gathering51- [workflow-orchestrator/SKILL.md](./workflow-orchestrator/SKILL.md) — full lifecycle orchestration across all skills