All AEM as a Cloud Service skills: component development, Workflow model design, development, triggering, launchers, debugging, and triaging, Dispatcher config authoring, advisory, incident response, performance tuning, and security hardening, Rapid Development Environment (RDE) deployment, log inspection, snapshots, and troubleshooting via `aio aem rde`, Jackrabbit Oak query/index tuning (property, Lucene index definitions), and extracting/inventorying JCR queries (XPath, SQL2, QueryBuilder) across a codebase.
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
This is the master entry point for all AEM Workflow tasks on Cloud Service — spanning both development (building workflows) and production support (debugging and triaging workflow issues). Read this skill first. It classifies the user's request and routes to the right sub-skill.
SKILL.md and its referencesworkflow-foundation references alongside the sub-skill references| User Says / Asks | Sub-Skill to Load |
|---|---|
| "Create a workflow model", "Add steps to a workflow", "Design an OR split", "I need a parallel review" | workflow-model-design |
| "Implement a custom process step", "Write a WorkflowProcess", "Create a ParticipantStepChooser", "Dynamic participant" | workflow-development |
| "Start a workflow from code", "Trigger a workflow via API", "Use Manage Publication with a workflow", "HTTP REST API to start a workflow" | workflow-triggering |
| "Configure a launcher", "Auto-start on asset upload", "Launcher not firing", "cq:WorkflowLauncher", "Overlay an OOTB launcher" | workflow-launchers |
| "How do workflows work?", "Explain workflow architecture" | Load workflow-foundation references only |
| User Says / Asks | Sub-Skill to Load |
|---|---|
| "Workflow is stuck", "Why isn't my workflow advancing?", "No work item", "Workflow failed", "Step shows error" | workflow-debugging |
| "Task not in Inbox", "User can't see work item", "Permissions error on workflow" | workflow-debugging |
| "Thread pool exhausted", "Auto-advancement not working", "Queue backlog", "Sling Jobs stuck" | workflow-debugging |
| "Repository bloat", "Too many workflow instances", "Purge not working", "Stale workflows" | workflow-debugging |
| "What workflow errors on host X?", "Workflow activity for the past N hours", "What should I collect?" | workflow-triaging |
| "Classify this workflow ticket", "What Splunk query should I use?", "What logs do I need?" | workflow-triaging |
| "Why did workflow X fail? Show me the error.", "Failure details for model Y" | workflow-triaging |
Routing heuristic:
workflow-model-design, workflow-development, workflow-triggering, workflow-launchers)workflow-debuggingworkflow-triagingworkflow-triaging to classify, then workflow-debugging for resolutionFor every workflow task on Cloud Service, load in this order:
workflow-orchestrator/references/workflow-foundation/architecture-overview.md
workflow-orchestrator/references/workflow-foundation/api-reference.md
workflow-orchestrator/references/workflow-foundation/jcr-paths-reference.md
workflow-orchestrator/references/workflow-foundation/cloud-service-guardrails.md
workflow-orchestrator/references/workflow-foundation/quick-start-guide.mdworkflow-model-design/SKILL.md ← for model design tasks
workflow-development/SKILL.md ← for Java implementation tasks
workflow-triggering/SKILL.md ← for start/trigger tasks
workflow-launchers/SKILL.md ← for launcher config tasks
workflow-debugging/SKILL.md ← for production debugging tasks
workflow-triaging/SKILL.md ← for incident triage tasksworkflow-model-design:
workflow-model-design/references/workflow-model-design/step-types-catalog.md
workflow-model-design/references/workflow-model-design/model-xml-reference.md
workflow-model-design/references/workflow-model-design/model-design-patterns.mdworkflow-development:
workflow-development/references/workflow-development/process-step-patterns.md
workflow-development/references/workflow-development/participant-step-patterns.md
workflow-development/references/workflow-development/variables-and-metadata.mdworkflow-triggering:
workflow-triggering/references/workflow-triggering/triggering-mechanisms.md
workflow-triggering/references/workflow-triggering/programmatic-api.mdworkflow-launchers:
workflow-launchers/references/workflow-launchers/launcher-config-reference.md
workflow-launchers/references/workflow-launchers/condition-patterns.mdworkflow-debugging:
workflow-debugging/SKILL.md
workflow-debugging/reference.mdworkflow-triaging:
workflow-triaging/SKILL.md| Constraint | Detail |
|---|---|
| No JMX | No retryFailedWorkItems, countStaleWorkflows, restartStaleWorkflows, purgeCompleted via JMX |
| Retry failed items | Inbox Retry only |
| Stale detection | Custom API/script only |
| Purge | Purge Scheduler (OSGi config in Git) |
| Log access | Cloud Manager → Environments → Logs (download / streaming) |
| Thread dumps | Developer Console or support request |
| Config changes | Code in Git + Cloud Manager pipeline deploy |
Before doing anything, apply these non-negotiable constraints:
| Rule | Detail |
|---|---|
/libs is immutable | Never write to /libs; use /conf/global/ or /apps/ overlays |
| Model design-time path | /conf/global/settings/workflow/models/<id> |
| Model runtime path (for API calls) | /var/workflow/models/<id> |
| Launcher config path | /conf/global/settings/workflow/launcher/config/ |
| Service users | Always use workflow-process-service sub-service; never admin credentials |
| OSGi annotations | Use DS R6 (@Component, @Reference from org.osgi.service.component.annotations) |
| Deploy via | Cloud Manager pipeline — no Package Manager in production |
No javax.jcr.Session.loginAdministrative | Use ResourceResolverFactory.getServiceResourceResolver() |
Full detail: references/workflow-foundation/cloud-service-guardrails.md
Author tier
│
├── Content Author
│ └── triggers via: Timeline UI / Manage Publication
│
├── Custom code (OSGi service / event handler / scheduler)
│ └── triggers via: WorkflowSession.startWorkflow()
│
└── Workflow Launcher (cq:WorkflowLauncher)
└── triggers via: JCR observation events
↓
Granite Workflow Engine
↓
Workflow Instance (/var/workflow/instances/)
↓
Steps executed as Sling Jobs:
- PROCESS step → WorkflowProcess.execute()
- PARTICIPANT step → inbox task for user/group
- DYNAMIC_PARTICIPANT → ParticipantStepChooser.getParticipant()
- OR_SPLIT → route expression evaluates to true/false
- AND_SPLIT → parallel branches, AND_JOIN waits for allworkflow-model-design + workflow-development sub-skillsWorkflowProcess for the approve/reject step/conf/global/settings/workflow/models/workflow-launchers sub-skillcq:WorkflowLauncher for NODE_ADDED on the DAM path/var/workflow/models//conf/global/settings/workflow/launcher/config/workflow-triggering sub-skillWorkflowStarterService using ResourceResolverFactory + WorkflowSessionworkflow-starter to workflow-process-serviceworkflow-triaging → classify as workflow_fails_or_shows_errorError executing workflow step on host + time rangeworkflow-debugging → map to runbook, walk decision treeworkflow-debugging → classify as workflow_stuck_not_progressingreferences/workflow-foundation/architecture-overview.md
references/workflow-foundation/api-reference.md
references/workflow-foundation/jcr-paths-reference.md
references/workflow-foundation/cloud-service-guardrails.md
references/workflow-foundation/quick-start-guide.md.tessl-plugin
skills
aem-rde
aem-workflow
code-assessment
content-distribution
create-component
assets
references
dispatcher
incident-response
references
dispatcher-foundation
performance-tuning
references
dispatcher-foundation
security-hardening
references
dispatcher-foundation
technical-advisory
references
dispatcher-foundation
workflow-orchestrator
references
dispatcher-foundation
ensure-agents-md
references
migration
references
dispatcher
legacy-ui
template-modernization
validation
scripts
dispatcher-tool
validate-migration