configuring-horizon
Use this skill whenever the user mentions Horizon by name in a Laravel context. Covers the full Horizon lifecycle: installing…
Build, refactor, and troubleshoot Laravel Actions using lorisleiva/laravel-actions. Use when implementing reusable action classes (object/controller/job/listener/command), converting service classes/controllers/jobs into actions, orchestrating workflows via faked actions, or
Claude Code
$ npx -y skills add coollabsio/coolify --skill laravel-actions --agent claude-code
Codex
$ npx skills add coollabsio/coolify --skill laravel-actions -a codex -y
Cursor
$ npx skills add coollabsio/coolify --skill laravel-actions -a cursor -y
Gemini CLI
$ npx skills add coollabsio/coolify --skill laravel-actions -a gemini-cli -y
GitHub Copilot
$ npx skills add coollabsio/coolify --skill laravel-actions -a github-copilot -y
OpenCode
$ npx skills add coollabsio/coolify --skill laravel-actions -a opencode -y
Windsurf
$ npx skills add coollabsio/coolify --skill laravel-actions -a windsurf -y
name: laravel-actions description: Build, refactor, and troubleshoot Laravel Actions using lorisleiva/laravel-actions. Use when implementing reusable action classes (object/controller/job/listener/command), converting service classes/controllers/jobs into actions, orchestrating workflows via faked actions, or debugging action entrypoints and wiring.
Use this skill to implement or update actions based on `lorisleiva/laravel-actions` with consistent structure and predictable testing patterns.
1. Confirm the package is installed with `composer show lorisleiva/laravel-actions`. 2. Create or edit an action class that uses `Lorisleiva\Actions\Concerns\AsAction`. 3. Implement `handle(...)` with the core business logic first. 4. Add adapter methods only when needed for the requested entrypoint:
5. Add or update tests for the chosen entrypoint. 6. When tests need isolation, use action fakes (`MyAction::fake()`) and assertions (`MyAction::assertDispatched()`).
Use this minimal skeleton and expand only what is needed.
<?php
namespace App\Actions;
use Lorisleiva\Actions\Concerns\AsAction;
class PublishArticle
{
use AsAction;
public function handle(int $articleId): bool
{
return true;
}
}<?php
namespace App\Actions\Demo;
use App\Models\Demo;
use DateTime;
use Lorisleiva\Actions\Concerns\AsAction;
use Lorisleiva\Actions\Decorators\JobDecorator;
class GetDemoData
{
use AsAction;
public int $jobTries = 3;
public int $jobMaxExceptions = 3;
public function getJobRetryUntil(): DateTime
{
return now()->addMinutes(30);
}
public function getJobBackoff(): array
{
return [60, 120];
}
public function getJobUniqueId(Demo $demo): string
{
return $demo->id;
}
public function handle(Demo $demo): void
{
// Core business logic.
}
public function asJob(JobDecorator $job, Demo $demo): void
{
// Queue-specific orchestration and retry behavior.
$this->handle($demo);
}
}Use these members only when needed:
Use a two-layer strategy:
1. `handle(...)` tests for business correctness. 2. entrypoint tests (`asController`, `asJob`, `asListener`, `asCommand`) for wiring/orchestration.
Reference: https://www.laravelactions.com/2.x/as-fake.html
Use these methods intentionally based on what you want to prove.
PublishArticle::mock()
->shouldReceive('handle')
->once()
->with(42)
->andReturnTrue();PublishArticle::partialMock()
->shouldReceive('fetchRemoteData')
->once()
->andReturn(['ok' => true]);$spy = PublishArticle::spy()->allows('handle')->andReturnTrue();
// execute code that triggers the actioAn open-source platform to deploy applications, databases, and services on your own servers. Open source & free forever, backed by our philosophy. 
Use this skill whenever the user mentions Horizon by name in a Laravel context. Covers the full Horizon lifecycle: installing…
ACTIVATE when the user works on authentication in Laravel. This includes login, registration, password reset, email verification,…
Use this skill to analyze how a Laravel application is actually written and record its conventions as shared rules. Trigger when…
Apply this skill whenever writing, reviewing, or refactoring Laravel PHP code. This includes creating or modifying controllers,…
Use for any task or question involving Livewire. Activate if user mentions Livewire, wire: directives, or Livewire-specific…
Use this skill for Laravel MCP development. Trigger when creating or editing MCP tools, resources, prompts, servers, or UI apps…
Use when launching cloud VMs, Kubernetes pods, or Slurm jobs for GPU/TPU/CPU workloads, training or fine-tuning models on cloud…
Use this skill when the user mentions "pinme", or needs to upload files, store to IPFS, create/publish/deploy websites or…