Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
The English summary is being prepared. Showing the original description.
Use when configuring Laravel task scheduling — cron expressions, frequency helpers, overlap prevention, maintenance mode, or output handling.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Use this skill when scheduling recurring tasks:
routes/console.php (Laravel 11+) or app/Console/Kernel.php to identify current cadence, overlap-prevention patterns, and output handling.withoutOverlapping() / onOneServer() is required.Schedule::command(...) / Schedule::job(...) entry; wire log destinations and runInBackground() if needed.php artisan schedule:test (or schedule:list) and confirm timing, output path, and overlap behavior.use Illuminate\Support\Facades\Schedule;
Schedule::command('reports:generate')->dailyAt('06:00');
Schedule::command('telescope:prune --hours=48')->daily();
Schedule::command('queue:prune-batches --hours=48')->daily();
Schedule::job(new CleanupTemporaryFiles())->hourly();
| Method | Schedule |
|---|---|
->everyMinute() | Every minute |
->everyFiveMinutes() | Every 5 minutes |
->everyFifteenMinutes() | Every 15 minutes |
->hourly() | Every hour |
->hourlyAt(17) | Every hour at :17 |
->daily() | Daily at midnight |
->dailyAt('13:00') | Daily at 1 PM |
->twiceDaily(1, 13) | Daily at 1 AM and 1 PM |
->weekly() | Weekly on Sunday at midnight |
->weeklyOn(1, '8:00') | Weekly on Monday at 8 AM |
->monthly() | Monthly on the 1st at midnight |
->monthlyOn(4, '15:00') | Monthly on the 4th at 3 PM |
->quarterly() | Quarterly |
->yearly() | Yearly |
Schedule::command('reports:generate')->cron('0 6 * * 1-5'); // Weekdays at 6 AM
// Prevent overlapping — skip if previous instance is still running
Schedule::command('import:customers')->hourly()->withoutOverlapping();
// With custom expiration (minutes)
Schedule::command('import:customers')->hourly()->withoutOverlapping(30);
// Only in production
Schedule::command('reports:send')->daily()->environments(['production']);
// Custom condition
Schedule::command('sync:data')->hourly()->when(function () {
return Config::boolean('services.sync.enabled');
});
// Skip condition
Schedule::command('emails:send')->daily()->skip(function () {
return app()->isDownForMaintenance();
});
// Log output to file
Schedule::command('reports:generate')
->daily()
->appendOutputTo(storage_path('logs/reports.log'));
// Email output on failure
Schedule::command('import:data')
->daily()
->emailOutputOnFailure('admin@example.com');
// Run even during maintenance mode
Schedule::command('queue:work')->everyMinute()->evenInMaintenanceMode();
# The scheduler itself runs every minute via system cron.
# cron has no working directory to inherit, and artisan takes no directory
# flag, so the `cd` is the shape here rather than a habit worth replacing.
* * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1
# Test locally
php artisan schedule:work # Runs scheduler in foreground
php artisan schedule:list # Show all scheduled tasks
php artisan schedule:test # Run a specific task interactively
// routes/console.php — include schedule groups
Schedule::group('reports.php');
Schedule::group('imports.php');
// routes/console/reports.php
Schedule::command('reports:daily')->dailyAt('06:00');
Schedule::command('reports:weekly')->weeklyOn(1, '07:00');
withoutOverlapping() for long-running tasks.environments() to restrict production-only tasks.appendOutputTo().routes/console/.emailOutputOnFailure() or Horizon for queued jobs.schedule:run goes in crontab, everything else in Laravel.php artisan schedule:list shows the task.withoutOverlapping() is set for long-running tasks.evenInMaintenanceMode()).withoutOverlapping() uses cache locks — if the cache is cleared, overlapping can still happen.runInBackground() for long-running tasks — without it, one task blocks the next.withoutOverlapping() for tasks that may run longer than their interval.No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
The English summary is being prepared. Showing the original description.
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
The English summary is being prepared. Showing the original description.
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
The English summary is being prepared. Showing the original description.
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
The English summary is being prepared. Showing the original description.
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
The English summary is being prepared. Showing the original description.
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
The English summary is being prepared. Showing the original description.