Livewire Development
coollabsio/coolify
A skill your agent uses for any task or question involving Livewire.
A skill your agent uses when building or extending a Laravel 11/12 app — Eloquent models, migrations and relationships, routing with controllers and Form Requests, queues and background jobs…
$ npx skills add ericrisco/rsc-harness --skill laravel -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness laravel --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/laravel .claude/skills/laravel && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "laravel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/laravel into .claude/skills/laravel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ericrisco/rsc-harness/tree/main/skills/laravelType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ericrisco/rsc-harness --skill laravel -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness laravel --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/laravel .agents/skills/laravel && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "laravel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/laravel into .agents/skills/laravel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill laravel -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness laravel --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/laravel .cursor/skills/laravel && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "laravel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/laravel into .cursor/skills/laravel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ericrisco/rsc-harness.git --path skills/laravel--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ericrisco/rsc-harness --skill laravel -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness laravel --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/laravel .gemini/skills/laravel && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "laravel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/laravel into .gemini/skills/laravel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ericrisco/rsc-harness laravelInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ericrisco/rsc-harness --skill laravel -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/laravel .github/skills/laravel && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "laravel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/laravel into .github/skills/laravel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill laravel -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness laravel --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/laravel .opencode/skills/laravel && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "laravel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/laravel into .opencode/skills/laravel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
laravelA skill your agent uses when building or extending a Laravel 11/12 app — Eloquent models, migrations and relationships, routing with controllers and Form Requests, queues and background jobs…
Laravel is an agent skill from ericrisco/rsc-harness. Use when building or extending a Laravel 11/12 app — Eloquent models, migrations and relationships, routing with controllers and Form Requests, queues and background jobs, framework-native security (validation, mass-assignment, policies, signed URLs, rate limiting), and Pest/PHPUnit feature tests. NOT pure PHP language or toolchain work (that is php).
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/eloquent-patterns.md`).
It sits in Backend & APIs, covering Backend development, Rate limiting and Background jobs. It works with Laravel, PHP and Vue.js. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
Read from SKILL.md and the folder at commit e3d5b33. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
composerphpFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Laravel loads about 3.5k tokens when it runs, and up to ~6.2k if it reads all its reference files. Until then it costs about 91 tokens; SKILL.md has 1,049 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
| Committing real secrets in `.env` | leaks credentials into history | `.env` is git-ignored; commit `.env.example` onlyAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from ericrisco/rsc-harness at commit e3d5b33, republished under its MIT licence (© ericrisco). 1,049 words, ~3,529 tokens.
.claude/skills/laravel/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Build Laravel the way the framework ships today — Laravel 12 (released 2025-02-24,
PHP 8.2–8.4), continuing the slimmed Laravel 11 skeleton. That means no
app/Http/Kernel.php and no app/Console/Kernel.php: middleware, routing, exception
handling and providers are all configured in bootstrap/app.php, and scheduled tasks
live in routes/console.php. Generate that structure, not 2019 Laravel.
This skill owns the framework surface: Eloquent, routing/controllers, queues, the artisan-shaped project, and in-framework Pest tests. The PHP language and toolchain underneath (types, enums, Composer/PSR-4, PHPStan, Pint) is the ../php/SKILL.md skill — its boundary line literally reads "NOT Eloquent/Blade/Artisan (that is laravel)"; this is the mirror.
A wrong version assumption generates dead code. Detect the version and skeleton first.
composer show laravel/framework # exact installed version
ls bootstrap/app.php # present -> L11/12 slim skeleton
ls app/Http/Kernel.php 2>/dev/null # present -> L10 or older (Kernel era)
php artisan --version # confirms runtime + versionIf bootstrap/app.php exists and app/Http/Kernel.php does not, you are on L11/12 —
use the modern idioms below. Then pick your path:
| Situation | Do |
|---|---|
| Greenfield | laravel new <app>, then a starter kit: React (React 19 + TS + Inertia 2 + shadcn/ui), Vue (Vue 3 + Inertia 2 + shadcn-vue), or Livewire (Livewire 3 + Volt + Flux UI). Optional WorkOS AuthKit for auth. |
| Brownfield L11/12 | Follow the repo's existing conventions; do not "reorganize" into folders it dropped. |
| Pre-11 (Kernel era) | Migrate to bootstrap/app.php deliberately; move Kernel middleware to withMiddleware(), schedule to routes/console.php. Treat as a project, not an inline tweak. |
bootstrap/app.php # withRouting(), withMiddleware(), withExceptions(), withProviders()
routes/web.php # web routes (CSRF-protected, session)
routes/api.php # api routes (stateless) — present once you opt in
routes/console.php # closures + the SCHEDULER (Schedule::command(...)->daily())
app/Models/ # Eloquent models
app/Http/Controllers/ # thin controllers
app/Http/Requests/ # Form Requests (validation + authorization)
app/Jobs/ # queued jobs
app/Policies/ # authorization policies// Bad: hunting for or editing app/Http/Kernel.php to register middleware (L11/12 deleted it).
// Good: bootstrap/app.php
return Application::configure(basePath: dirname(__DIR__))
->withRouting(web: __DIR__.'/../routes/web.php', commands: __DIR__.'/../routes/console.php')
->withMiddleware(function (Middleware $middleware) {
$middleware->alias(['subscribed' => EnsureUserIsSubscribed::class]);
$middleware->web(append: [TrackLastSeen::class]);
})
->withExceptions(function (Exceptions $exceptions) {
$exceptions->dontReport(InvalidOrderException::class);
})->create();Mass assignment is the #1 Laravel footgun. A model must declare an allowlist; an open
blocklist on user input lets a request set any column (is_admin, balance).
// Bad: anything in the request body can be written, including columns you never meant to expose.
class Post extends Model {
protected $guarded = [];
}
// Good: explicit allowlist. Casts give you typed attributes back out of the DB.
class Post extends Model {
protected $fillable = ['title', 'body', 'published_at'];
protected function casts(): array {
return [
'published_at' => 'datetime',
'status' => PostStatus::class, // backed-enum cast
'meta' => 'array', // json <-> array
'api_token' => 'encrypted', // at-rest encryption
];
}
public function tags(): BelongsToMany { return $this->belongsToMany(Tag::class); }
}N+1 is the most common Laravel performance bug — a query per row instead of one. Eager load.
// Bad: 1 query for posts + 1 per post for its author = N+1.
foreach (Post::all() as $post) { echo $post->author->name; }
// Good: eager load up front -> 2 queries total.
foreach (Post::with('author')->get() as $post) { echo $post->author->name; }Migrations define the schema; the casts() method (L11+ method form, not the old
$casts array) maps columns to enums/arrays/encrypted values. Relationship deep dives
(polymorphic, has-many-through, scopes, observers, custom casts, accessors via the
Attribute class) live in references/eloquent-patterns.md.
Keep controllers thin: they take a validated request, call a service/model, return a
response. Push branching logic out of routes — business logic in routes/web.php is
untestable and unreusable.
Form Requests do validation AND authorization in one object — the authorize() gate
runs before rules(), so an unauthorized request never reaches your validation or
controller.
// app/Http/Requests/StoreOrderRequest.php
final class StoreOrderRequest extends FormRequest {
public function authorize(): bool {
return $this->user()->can('create', Order::class); // policy check, before rules
}
public function rules(): array {
return [
'sku' => ['required', 'string', 'exists:products,sku'],
'quantity' => ['required', 'integer', 'min:1', 'max:100'],
];
}
}
// Controller: route-model binding + the Form Request = a tiny method.
public function store(StoreOrderRequest $request): RedirectResponse {
$order = Order::create($request->validated()); // only allow-listed, validated data
ProcessOrder::dispatch($order);
return to_route('orders.show', $order);
}For JSON APIs, shape output with API Resources (JsonResource). The transport
contract — resource naming, versioning, status-code semantics, pagination shape — is the
api-design skill, not this one; this skill covers implementing it in Laravel.
A job that implements ShouldQueue is pushed to the queue and runs out-of-band instead of
inline — that is what gets a slow email/payment off the request cycle.
final class ProcessOrder implements ShouldQueue {
use Queueable, Batchable;
public int $tries = 3; // attempts before it lands in failed_jobs
public int $timeout = 120; // seconds before the worker kills it
public function backoff(): array { return [10, 60, 300]; } // exponential-ish retry spacing
public function __construct(public Order $order) {}
public function handle(): void {
if ($this->batch()?->cancelled()) return; // respect a cancelled batch
// ... charge, fulfil ...
}
}
ProcessOrder::dispatch($order); // queued (or inline if driver is sync)Batches let you fan out and react when the group finishes; allowFailures() keeps the
batch going when individual jobs fail.
Bus::batch([new ProcessOrder($a), new ProcessOrder($b)])
->allowFailures()
->then(fn (Batch $b) => Log::info("done: {$b->totalJobs}"))
->dispatch();Driver choice:
| Need | Use |
|---|---|
| Simple, low volume, no extra infra | database driver (a jobs table) |
| High throughput + a dashboard (retries, runtime, failures) | Redis + Horizon — Horizon manages the workers and gives you the monitor |
Schedule recurring work in routes/console.php (the L11/12 home for the scheduler — there
is no app/Console/Kernel.php):
// routes/console.php
Schedule::command('orders:reconcile')->dailyAt('02:00');
Schedule::job(new PruneStaleCarts)->hourly();Worker deployment, Horizon config, the retry/backoff/timeout matrix, failed_jobs +
queue:retry, and supervisor/queue:work flags are in
references/queues-and-scheduling.md.
| Control | Use | Why |
|---|---|---|
| Validation | Form Request rules() | reject malformed input at the edge, before the controller |
| Mass-assignment guard | $fillable allowlist (see Eloquent) | stops a request writing columns you never exposed |
| Authorization | Policies + Gates, $user->can(...), authorize() | keeps authz out of controllers and consistent |
| Tamper-proof links | signed URLs (URL::signedRoute, signed middleware) | unsubscribe/verify links that can't be forged |
| Abuse limiting | rate limiting (throttle middleware, RateLimiter::for) | caps brute-force / scraping per user or IP |
| Secrets at rest | Hash::make/Hash::check for passwords, Crypt for reversible data | bcrypt/argon2 hashing; never store plaintext |
CSRF protection is automatic on web routes; do not disable it. Read config through
config(), never env() outside config/*.php — once configs are cached (config:cache
in prod) env() returns null everywhere else. Cross-stack OWASP/threat-modeling is the
secure-coding skill; the table above is the framework-native layer this skill owns.
Pest is the default runner in new Laravel apps (PHPUnit still fully supported). Use
RefreshDatabase for a clean schema per test and model factories for data.
uses(RefreshDatabase::class);
it('processes a paid order', function () {
$user = User::factory()->create();
$this->actingAs($user)
->post('/orders', ['sku' => 'ABC', 'quantity' => 2])
->assertRedirect();
$this->assertDatabaseHas('orders', ['sku' => 'ABC', 'quantity' => 2]);
});The sync-driver gotcha. Tests use the sync queue driver by default, so a dispatched
job runs inline during the test — it does not sit on a queue. If you assert "the email
was sent" you are accidentally testing execution. To test that work was dispatched, fake
the queue first:
it('dispatches order processing', function () {
Queue::fake(); // jobs are now recorded, not run
$order = Order::factory()->create();
ProcessOrder::dispatch($order);
Queue::assertPushed(ProcessOrder::class); // assert dispatch, not side effects
});Http::fake() and Event::fake() work the same way for outbound HTTP and events.
Cross-stack browser/E2E (Playwright/Cypress) strategy is the testing-web skill; this
skill covers in-framework Pest/PHPUnit feature and unit tests.
Pennant (feature flags / A-B), Pulse (real-time perf: slow queries, job throughput), Folio (page-based routing), Horizon (Redis queue dashboard). First-party — prefer them over rolling your own.
| Pattern | Why it is bad | Do instead |
|---|---|---|
protected $guarded = [] on a user-facing model | any request column becomes mass-assignable (is_admin, balance) | explicit $fillable allowlist |
Hunting for / re-creating app/Http/Kernel.php on L11/12 | the file was deleted; your middleware never registers | configure in bootstrap/app.php withMiddleware() |
Lazy access inside a loop/Blade ($post->author per row) | N+1 — one query per row | eager load with with() |
Fat controllers / logic in routes/web.php | untestable, unreusable, no authz boundary | thin controller + Form Request + service/model |
| Asserting a queued job's side effects in a test | sync driver runs it inline — you test execution, not dispatch | Queue::fake() + Queue::assertPushed() |
env() outside config/*.php | returns null once config:cache runs in prod | read via config(); env() only inside config files |
$tries unset on a flaky job | one transient failure = permanent failure | set $tries + backoff() |
Committing real secrets in .env | leaks credentials into history | .env is git-ignored; commit .env.example only |
Old $casts = [...] array (deprecated form) | misses the L11+ casts() method idioms | the casts(): array method |
Run scripts/verify.sh from a Laravel project root. It validates
composer.json, checks the framework version, runs Pint (style, read-only --test) and
the test runner (Pest/artisan test) if present, and greps for protected $guarded = []
under app/Models. It degrades gracefully — prints a skip notice and exits 0 — when there
is no Laravel project or no vendor/ dir, so it never blocks a non-Laravel repo.
Attribute class.failed_jobs + queue:retry, worker deployment (supervisor, queue:work flags),
graceful restarts.© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (scripts, references) in skills/laravel of ericrisco/rsc-harness.
Open the folder on GitHubat commit e3d5b33
Laravel next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Laravel this skillericrisco/rsc-harness | 167 | — | ~3.5k | Automated safety check: Notes | MIT | |
| Livewire Developmentcoollabsio/coolify | 63k | — | ~964 | Automated safety check: Pass | MIT | |
| Livewire Developmentyungifez/skuul | 409 | 1 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Laravel SpecialistJeffallan/claude-skills | 12k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Configure Nightwatchtrypostit/trypost | 678 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Passport Developmenttrypostit/trypost | 678 | — | ~1.9k | Automated safety check: Pass | MIT |
coollabsio/coolify
A skill your agent uses for any task or question involving Livewire.
yungifez/skuul
A skill your agent uses for any task or question involving Livewire.
Jeffallan/claude-skills
Builds Laravel 10+ applications with Eloquent models, Sanctum authentication, Horizon queues, API resources and Livewire components, tested with Pest or PHPUnit.
trypostit/trypost
Configures Laravel Nightwatch data collection, sampling rates, filtering rules, and redaction policies.
trypostit/trypost
Develops OAuth2 API authentication with Laravel Passport. An agent skill from trypostit/trypost.
gdarko/laravel-vue-starter
Activate when working on SPA authentication flow, Sanctum cookie-based auth, Vue Router guards, auth store, login/register/password reset pages, or CORS/session configuration.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
Categories
A skill your agent uses when building or extending a Laravel 11/12 app — Eloquent models, migrations and relationships, routing with controllers and Form Requests, queues and background jobs…. Laravel is an agent skill from ericrisco/rsc-harness. Use when building or extending a Laravel 11/12 app — Eloquent models, migrations and relationships, routing with controllers and Form Requests, queues and background jobs, framework-native security (validation, mass-assignment, policies, signed URLs, rate limiting), and Pest/PHPUnit feature tests.
Laravel fits situations like: extending a Laravel 11/12 app — Eloquent models; migrations and relationships; routing with controllers and Form Requests; queues and background jobs.
Run `npx skills add ericrisco/rsc-harness --skill laravel -a claude-code`. Or copy the skill folder (skills/laravel in ericrisco/rsc-harness) into .claude/skills/laravel in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill laravel -a codex`. Or copy the skill folder (skills/laravel in ericrisco/rsc-harness) into .agents/skills/laravel in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill laravel -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/laravel, .gemini/skills/laravel, .github/skills/laravel and .opencode/skills/laravel in your project.
Going by SKILL.md and its folder, Laravel needs a shell for the scripts in its folder and the command-line tools its instructions call (composer and php). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Laravel is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Laravel: Livewire Development (coollabsio/coolify, 63k stars), Livewire Development (yungifez/skuul, 409 stars), Laravel Specialist (Jeffallan/claude-skills, 12k stars) and Configure Nightwatch (trypostit/trypost, 678 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 167 GitHub stars. The repository holds 227 skills in this directory. The repository was last updated on October 7, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.