labrodev-pipelinelisted
Install: claude install-skill labrodev/laravel-playbook
# Pipelines: staged workflows with a Payload and an orchestrating Service
Part of the Labrodev playbook. **The law for this component lives in the always-on `labrodev-pipeline` guideline** (musts, must-nots); the per-file checklist is `rules/pipelines.md`. This skill holds the craft: anatomy, canonical templates, and edge cases.
A pipeline workflow has exactly three parts:
| Part | Class | Lives in |
|---|---|---|
| Flow state | `{Workflow}Payload` | `Core/Domain/{Domain}/Payloads/` |
| Atomic steps | verb-first step classes, no suffix | `Core/Domain/{Domain}/Pipelines/{Workflow}/` |
| Orchestrator | `{Workflow}Service` — a **Service** plays the orchestrator role | `Core/Domain/{Domain}/Services/` |
There is **no separate Orchestrator class type**. The orchestrating class is a Service and follows every Service rule: single public `__invoke()`, injected and invoked as a callable with named arguments (→ see the labrodev-naming skill).
## When to use a pipeline
Reach for this trio when a use case is a **staged workflow** — several distinct steps, each with its own side effect, that must run as one coherent business scenario. Canonical example: registering a booking is not just creating the booking row — it also creates the customer, sends confirmation mail, writes an audit log, and pushes the data to an external CRM.
Do NOT use a pipeline for:
- a single atomic mutation → a plain Action (→ see the labrodev-action skill);
- two steps where the second is a persistence-adja