PHP / Laravel Orchestrator
The single entry skill for Laravel work. It places the task on the build → test → verify →
ship lifecycle and delegates to one of five specialist spokes. The cross-cutting conventions
every spoke shares — the layered request flow (controller → service → action → model), the
typed-Eloquent and validation rules, the response envelope, and the version/tooling matrix —
live in php-laravel-core; read it before wiring controllers, validation, or the test/CI
pipeline so no two spokes contradict each other.
Cluster map (spoke → role)
laravel-patterns — application architecture: routing & controllers, the controller →
service → action layering, Eloquent models/scopes/casts, migrations, API resources, queues,
events, and caching. The structural backbone everything else builds on.
laravel-tdd — red-green-refactor with Pest (default) or PHPUnit: unit/feature/integration
layers, factories & states, RefreshDatabase, fakes (Bus/Queue/Mail/Notification),
Sanctum auth tests, Inertia assertions, and 80%+ coverage targets.
laravel-verification — the 7-phase gate to run before a PR and before deploy: env →
composer → pint/phpstan → tests+coverage → composer audit → migration review → build/queue
readiness. The pipeline that says "is this safe to ship?".
laravel-security — hardening: authn/authz (Sanctum, policies, gates), input validation,
CSRF, mass-assignment, file-upload safety, rate limiting, secrets, signed URLs, security
headers, and CORS. The default-deny posture for every endpoint.
laravel-plugin-discovery — find and vet Composer packages via the LaraPlugins.io MCP:
health score, last-activity, Laravel/PHP compatibility, and vendor reputation before you
composer require.
Routing rules by intent
"Build / structure the app"
- Project layout, controllers, services, Eloquent, queues, API shape →
laravel-patterns
(layering + response envelope in php-laravel-core)
"Test it"
- New feature/endpoint, bug fix, model/policy/job coverage, Pest vs PHPUnit →
laravel-tdd
"Is it safe to ship?"
- Pre-PR or pre-deploy gate, lint + static analysis + tests + audit + migration review →
laravel-verification
"Harden it"
- Auth, authorization, validation, CSRF, uploads, rate limiting, secrets, headers →
laravel-security
"Which package should I use?"
- Find/evaluate a Composer package, check maintenance & version compatibility →
laravel-plugin-discovery
Sibling clusters
Laravel owns the app layer (request flow, Eloquent, queues, auth-in-app). Defer the edges:
frontend-web — Inertia/Vue (or Blade-coupled) UI components, client-side state, and asset
bundling once you cross from the controller response into the browser.
databases-data — DB engine internals, query-plan/index tuning, and migration mechanics
below Eloquent (Laravel models the schema; this cluster models the engine).
devops-infra — deploy, queue workers, and scheduler infrastructure (containers, supervisor,
cron/runtime hosting) — Laravel defines the jobs; this cluster runs them.
security — cross-framework / infrastructure hardening beyond the app's authz, validation,
and headers (network, secrets management, supply-chain) that laravel-security doesn't cover.
Standard flow
- Locate the task on the lifecycle (build → test → verify → ship) and the concern.
- If it touches layering, validation, the response envelope, or the version/tooling matrix,
pull the model from
php-laravel-core first — these are shared, not per-spoke.
- Delegate to the spoke(s). Multi-step asks fan out in lifecycle order — e.g. "build and ship
an orders endpoint" →
laravel-patterns (structure) → laravel-tdd (cover it) →
laravel-security (authorize + validate) → laravel-verification (gate it).
- Return: chosen spoke(s), the conventions implied (layer boundaries, auth/validation, coverage),
and the next action.
Guardrails
See php-laravel-core. In short: keep controllers thin and push logic into services/actions;
validate every input in a Form Request and never trust the payload for derived fields;
default-deny on authorization (policies/gates, $fillable not unguard()); the verification
gate is sequential — env/composer failures stop everything, lint must be clean before tests, and
security/migration review precede any release step. Never widen mass-assignment, CORS origins, or
scope without saying so explicitly.
Loading spokes on demand
To keep CLI startup context lean, this cluster's spokes are not separately registered as skills — only this orchestrator and its *-core are enumerated. When you route to a spoke named above, load it on demand by reading its file:
~/.agents/skill-clusters/skills/<spoke-name>/SKILL.md (or skills/<spoke-name>/SKILL.md inside the skill-clusters repo).
1---2name: php-laravel-orchestrator3description: Route a PHP/Laravel task to the right specialist — architecture patterns (controllers → services → actions, Eloquent, queues), test-driven development with Pest/PHPUnit, the pre-PR/pre-deploy verification loop, security hardening (authz, validation, CSRF, uploads), and package discovery. USE WHEN a user is building, testing, hardening, or shipping a Laravel app but hasn't named the specific concern.4---56# PHP / Laravel Orchestrator78The single entry skill for Laravel work. It places the task on the **build → test → verify →9ship** lifecycle and delegates to one of five specialist spokes. The cross-cutting conventions10every spoke shares — the layered request flow (controller → service → action → model), the11typed-Eloquent and validation rules, the response envelope, and the version/tooling matrix —12live in `php-laravel-core`; read it before wiring controllers, validation, or the test/CI13pipeline so no two spokes contradict each other.1415## Cluster map (spoke → role)1617- **`laravel-patterns`** — application architecture: routing & controllers, the controller →18 service → action layering, Eloquent models/scopes/casts, migrations, API resources, queues,19 events, and caching. The structural backbone everything else builds on.20- **`laravel-tdd`** — red-green-refactor with Pest (default) or PHPUnit: unit/feature/integration21 layers, factories & states, `RefreshDatabase`, fakes (`Bus`/`Queue`/`Mail`/`Notification`),22 Sanctum auth tests, Inertia assertions, and 80%+ coverage targets.23- **`laravel-verification`** — the 7-phase gate to run before a PR and before deploy: env →24 composer → pint/phpstan → tests+coverage → `composer audit` → migration review → build/queue25 readiness. The pipeline that says "is this safe to ship?".26- **`laravel-security`** — hardening: authn/authz (Sanctum, policies, gates), input validation,27 CSRF, mass-assignment, file-upload safety, rate limiting, secrets, signed URLs, security28 headers, and CORS. The default-deny posture for every endpoint.29- **`laravel-plugin-discovery`** — find and vet Composer packages via the LaraPlugins.io MCP:30 health score, last-activity, Laravel/PHP compatibility, and vendor reputation before you31 `composer require`.3233## Routing rules by intent3435**"Build / structure the app"**36- Project layout, controllers, services, Eloquent, queues, API shape → `laravel-patterns`37 *(layering + response envelope in `php-laravel-core`)*3839**"Test it"**40- New feature/endpoint, bug fix, model/policy/job coverage, Pest vs PHPUnit → `laravel-tdd`4142**"Is it safe to ship?"**43- Pre-PR or pre-deploy gate, lint + static analysis + tests + audit + migration review →44 `laravel-verification`4546**"Harden it"**47- Auth, authorization, validation, CSRF, uploads, rate limiting, secrets, headers →48 `laravel-security`4950**"Which package should I use?"**51- Find/evaluate a Composer package, check maintenance & version compatibility →52 `laravel-plugin-discovery`5354## Sibling clusters5556Laravel owns the **app layer** (request flow, Eloquent, queues, auth-in-app). Defer the edges:5758- **`frontend-web`** — Inertia/Vue (or Blade-coupled) UI components, client-side state, and asset59 bundling once you cross from the controller response into the browser.60- **`databases-data`** — DB engine internals, query-plan/index tuning, and migration mechanics61 below Eloquent (Laravel models the schema; this cluster models the engine).62- **`devops-infra`** — deploy, queue workers, and scheduler infrastructure (containers, supervisor,63 cron/runtime hosting) — Laravel defines the jobs; this cluster runs them.64- **`security`** — cross-framework / infrastructure hardening beyond the app's authz, validation,65 and headers (network, secrets management, supply-chain) that `laravel-security` doesn't cover.6667## Standard flow68691. Locate the task on the lifecycle (build → test → verify → ship) and the concern.702. If it touches **layering, validation, the response envelope, or the version/tooling matrix**,71 pull the model from `php-laravel-core` first — these are shared, not per-spoke.723. Delegate to the spoke(s). Multi-step asks fan out in lifecycle order — e.g. "build and ship73 an orders endpoint" → `laravel-patterns` (structure) → `laravel-tdd` (cover it) →74 `laravel-security` (authorize + validate) → `laravel-verification` (gate it).754. Return: chosen spoke(s), the conventions implied (layer boundaries, auth/validation, coverage),76 and the next action.7778## Guardrails7980See `php-laravel-core`. In short: **keep controllers thin** and push logic into services/actions;81**validate every input** in a Form Request and never trust the payload for derived fields;82**default-deny on authorization** (policies/gates, `$fillable` not `unguard()`); **the verification83gate is sequential** — env/composer failures stop everything, lint must be clean before tests, and84security/migration review precede any release step. Never widen mass-assignment, CORS origins, or85scope without saying so explicitly.8687## Loading spokes on demand8889To keep CLI startup context lean, this cluster's spokes are **not** separately registered as skills — only this orchestrator and its `*-core` are enumerated. When you route to a spoke named above, **load it on demand** by reading its file:9091`~/.agents/skill-clusters/skills/<spoke-name>/SKILL.md` (or `skills/<spoke-name>/SKILL.md` inside the skill-clusters repo).