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.
Writes Laravel PHP — Eloquent, Artisan controllers, FormRequests, jobs, events, policies, providers. For Symfony / Doctrine use `symfony-workflow`. For framework-free PHP use `php-coder`.
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 for all Laravel-specific code generation and editing tasks, especially when working with:
This skill extends the base php-coder skill and applies Laravel conventions on top of the project's general PHP rules.
A DEPENDENCY PROVES A LIBRARY IS AVAILABLE. ONLY THE ENTRY POINT AND THE
ROUTER PROVE WHICH APPLICATION SHAPE IS RUNNING.
`illuminate/*` PACKAGES WITH NO SKELETON MARKER IS A THIRD STATE, AND THIS SKILL
DOES NOT APPLY TO IT.
Laravel ships its ORM, container, collections and HTTP layer as independently installable packages, usable with no framework present — a published distribution model, not one consumer's arrangement. An application built that way has a custom entry point and a custom router. Routing it here offers a CLI that does not exist, a request-validation primitive that is not wired, and a routes file that was never there: every suggestion confidently wrong, and the reason visible only from the entry point.
The probe set, and its cost. A fixed set of filesystem existence checks plus one manifest read — no directory walk, no content scan, and never re-derived per session. Any ONE marker present means the framework is real:
| Probe | Meaning |
|---|---|
artisan | the console entry point the skeleton writes |
config/app.php | the skeleton's bootstrap config |
bootstrap/app.php | the application bootstrap |
illuminate/* in composer.json with none of those markers is
components-without-the-framework. Say so and route away from this skill rather
than answering as though the framework were there.
Implemented deterministically in src/install/detect_php_shape.ts
(detectPhpShape), whose PROBE_PATHS is this table and whose verdict names
what a wrong route would have offered.
→ First apply the php-coder skill — it handles project docs, module docs, patterns, and quality tools.
Then add these Laravel-specific checks:
artisan exists.app/Modules/), or domain folders.routes/web.phproutes/api.phpenv() outside config files.eloquent skill.'type.daily_report' => 'Daily Report'.
Nested arrays ('type' => ['daily_report' => …]) are forbidden: they break
key referencing and make a one-line addition a nested diff.__('report.type.daily_report'), __('email.report.created.subject', ['number' => $number]).lang/en/ without
lang/de/ is a bug, not a TODO — the app ships to both audiences.env() outside config files.When generating Laravel code:
| Symptom | Root cause | Fix |
|---|---|---|
| A list endpoint fires hundreds of queries / is slow under load | N+1: a relation is accessed inside a loop without eager loading | Eager-load with with('relation'); enable Model::preventLazyLoading() in non-prod to catch it early |
| Config changes / new env vars have no effect in production | config:cache cached the old config, and env() returns null once config is cached | Read env only in config/*, use config() elsewhere; re-run config:cache on deploy |
| A form field silently isn't saved | The attribute isn't in $fillable and mass-assignment drops it | Add it to $fillable (or set it explicitly); never blanket-$guarded = [] on user input |
| Queued jobs never run / run with stale code | No worker is running, or workers weren't restarted after a deploy so they hold the old code in memory | Run/supervise queue:work; queue:restart on every deploy |
| Timestamps or times are off by hours | Comparing/formatting a Carbon instance without honoring config('app.timezone') vs the DB's UTC storage | Store UTC; convert for display; set the app timezone explicitly, don't assume server local time |
env() only works in config files — use config() everywhere else.Route::resource() with single-action controllers — pick the project's convention.Laravel-specific audit list (carved out of the generic security-audit
skill, 2026-07-12):
env() in non-config files (leaks in debug mode)APP_DEBUG=true) in production$fillable on models used with request()->all()Route::any() exposing unintended HTTP methodsNo 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.