brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
workflow-orchestratorMaster entry point for all AEM Workflow tasks on Cloud Service spanning development and production support
Independent GitHub snapshot · Automated classification · Original documentation governs
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.md
workflow-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 tasks
workflow-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.md
workflow-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.md
workflow-triggering:
workflow-triggering/references/workflow-triggering/triggering-mechanisms.md
workflow-triggering/references/workflow-triggering/programmatic-api.md
workflow-launchers:
workflow-launchers/references/workflow-launchers/launcher-config-reference.md
workflow-launchers/references/workflow-launchers/condition-patterns.md
workflow-debugging:
workflow-debugging/SKILL.md
workflow-debugging/reference.md
workflow-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 all
workflow-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