Resilient Check
When to use
Use this skill for Laravel jobs, integrations, webhooks, scheduled tasks, listeners, notifications, or user-facing flows that must stay reliable when dependencies are slow, unavailable, or inconsistent. It is most useful when queues, Redis, Horizon, external APIs, or payment/provider callbacks are involved.
Input parameters
- The workflow or subsystem to assess.
- External services, queues, or webhooks involved.
- Existing retry, timeout, circuit-breaker, or deduplication behavior.
- Known incidents, flaky tests, or production failure modes.
- Relevant jobs, listeners, commands, controllers, events, notifications, or queue config files.
Procedure
- Trace the Laravel execution path for the workflow. Inspect controllers, dispatched jobs, listeners, commands, notifications, service classes, and relevant config such as
config/queue.php, config/services.php, and Horizon settings.
- Identify where the workflow can fail or partially succeed: external HTTP calls, payment providers, webhooks, database writes, cache writes, file storage, notifications, and chained or batched jobs.
- Review retry behavior in Laravel terms. Check
tries, backoff, retryUntil, job timeouts, Horizon worker configuration, queue visibility/timeout alignment, and whether failures land in failed_jobs with useful context.
- Review idempotency and duplicate-delivery safety. Look for webhook deduplication, cache locks, unique jobs, database uniqueness guarantees,
firstOrCreate race conditions, unsafe side effects before persistence, and handlers that are not safe to replay.
- Flag high-risk patterns such as synchronous third-party API calls inside controllers, jobs that both mutate state and call external APIs without compensation, unbounded retries, missing dead-letter handling, and scheduled tasks that can overlap without
withoutOverlapping() or locks.
- Return findings under
High-risk failure modes, Code changes, and Operational safeguards. Prefer concrete Laravel fixes such as queue settings, locks, unique jobs, timeout changes, retry tuning, ThrottlesExceptions, or graceful fallback responses.
- Keep the answer practical and prioritized. Focus on the smallest changes that reduce operational risk fastest.
Output expectations: return the highest-risk failure modes first, then concrete Laravel code and operational fixes, with the smallest high-impact next steps called out clearly.
Examples
Prompt 1:
Use resilient-check on our payment webhook processing flow. Focus on duplicate deliveries, idempotency, timeouts, retry storms, and safe recovery.
Prompt 2:
Review this Laravel job pipeline for resilience. We call two external APIs and workers sometimes retry the same job for hours. Prioritize the highest-risk failure modes first.
JSON:
{
"skill": "resilient-check",
"context": {
"workflow": "payment_webhook_processing",
"dependencies": ["stripe", "erp_api", "redis_queue"],
"focus": ["idempotency", "timeouts", "retries", "fallbacks"],
"files": ["app/Jobs", "app/Listeners", "config/queue.php"],
"concerns": ["duplicate_delivery", "retry_storms", "timeout_alignment"]
}
}
Code example:
final class SyncInvoiceJob implements ShouldQueue
{
public int $tries = 5;
public int $timeout = 30;
public array $backoff = [60, 300, 900];
}
Smoke test
Use the skill on a Laravel queue-driven integration flow with synchronous API calls, naive retries, and no deduplication. Verify that the response references job-level settings like tries, backoff, and timeouts, flags idempotency gaps, and recommends concrete Laravel resilience fixes instead of general reliability advice.
1---2name: resilient-check3description: Review Laravel workflows for retries, timeouts, idempotency, and graceful failure under partial outages.4license: MIT5---67# Resilient Check89## When to use1011Use this skill for Laravel jobs, integrations, webhooks, scheduled tasks, listeners, notifications, or user-facing flows that must stay reliable when dependencies are slow, unavailable, or inconsistent. It is most useful when queues, Redis, Horizon, external APIs, or payment/provider callbacks are involved.1213## Input parameters1415- The workflow or subsystem to assess.16- External services, queues, or webhooks involved.17- Existing retry, timeout, circuit-breaker, or deduplication behavior.18- Known incidents, flaky tests, or production failure modes.19- Relevant jobs, listeners, commands, controllers, events, notifications, or queue config files.2021## Procedure22231. Trace the Laravel execution path for the workflow. Inspect controllers, dispatched jobs, listeners, commands, notifications, service classes, and relevant config such as `config/queue.php`, `config/services.php`, and Horizon settings.242. Identify where the workflow can fail or partially succeed: external HTTP calls, payment providers, webhooks, database writes, cache writes, file storage, notifications, and chained or batched jobs.253. Review retry behavior in Laravel terms. Check `tries`, `backoff`, `retryUntil`, job timeouts, Horizon worker configuration, queue visibility/timeout alignment, and whether failures land in `failed_jobs` with useful context.264. Review idempotency and duplicate-delivery safety. Look for webhook deduplication, cache locks, unique jobs, database uniqueness guarantees, `firstOrCreate` race conditions, unsafe side effects before persistence, and handlers that are not safe to replay.275. Flag high-risk patterns such as synchronous third-party API calls inside controllers, jobs that both mutate state and call external APIs without compensation, unbounded retries, missing dead-letter handling, and scheduled tasks that can overlap without `withoutOverlapping()` or locks.286. Return findings under `High-risk failure modes`, `Code changes`, and `Operational safeguards`. Prefer concrete Laravel fixes such as queue settings, locks, unique jobs, timeout changes, retry tuning, `ThrottlesExceptions`, or graceful fallback responses.297. Keep the answer practical and prioritized. Focus on the smallest changes that reduce operational risk fastest.3031Output expectations: return the highest-risk failure modes first, then concrete Laravel code and operational fixes, with the smallest high-impact next steps called out clearly.3233## Examples3435Prompt 1:3637```text38Use resilient-check on our payment webhook processing flow. Focus on duplicate deliveries, idempotency, timeouts, retry storms, and safe recovery.39```4041Prompt 2:4243```text44Review this Laravel job pipeline for resilience. We call two external APIs and workers sometimes retry the same job for hours. Prioritize the highest-risk failure modes first.45```4647JSON:4849```json50{51 "skill": "resilient-check",52 "context": {53 "workflow": "payment_webhook_processing",54 "dependencies": ["stripe", "erp_api", "redis_queue"],55 "focus": ["idempotency", "timeouts", "retries", "fallbacks"],56 "files": ["app/Jobs", "app/Listeners", "config/queue.php"],57 "concerns": ["duplicate_delivery", "retry_storms", "timeout_alignment"]58 }59}60```6162Code example:6364```php65final class SyncInvoiceJob implements ShouldQueue66{67 public int $tries = 5;68 public int $timeout = 30;69 public array $backoff = [60, 300, 900];70}71```7273## Smoke test7475Use the skill on a Laravel queue-driven integration flow with synchronous API calls, naive retries, and no deduplication. Verify that the response references job-level settings like `tries`, `backoff`, and timeouts, flags idempotency gaps, and recommends concrete Laravel resilience fixes instead of general reliability advice.