Releases: Foysal50x/skills
Release list
v1.1.2
v1.1.1
What changed
- Release 1.1.1
- Close the grouped-import blind spot and pin the memo() version floor
- Give the fail-fast job example the trait its calls depend on
- Add a release script that cuts a release from main in one command
- Correct the factual errors the manual audit found, and guard them in CI
Full Changelog: v1.1.0...v1.1.1
v1.1.0
Every **Correct** example in the rule set is now held to the rest of the rules, and all manifests declare 1.1.0.
Cross-rule consistency
A new npm run lint step (scripts/lint-examples.mjs) walks every fenced block in SKILL.md, rules/ and references/, plus every worked example under examples/, classifies it as correct or incorrect, and holds the correct ones to the other rules:
- no side effect dispatched inside
DB::transaction() - no
scope-prefixed methods - no
serialize()in a cache key - no query construction inside a Controller, Job, Listener or Command
- no driver-specific SQL outside an Expression class
- no CRUD-shaped repository methods
- one PHP type per example file, and
php -lover the worked examples
The examples that tripped these checks were fixed rather than exempted.
Rule fixes
- After-commit rules now match the queue documentation
- Pagination gains a
per_pagefloor; count-key fields corrected Scopeversion gating marked accurately
Housekeeping
npm run checkruns build, validate and lint togetherpackage.json, the plugin and marketplace manifests, and all five skillmetadata.json/SKILL.mdheaders bumped to 1.1.0
Full Changelog: v1.0.0...v1.1.0
v1.0.0
First release. Five Laravel engineering skills for AI coding agents — 193 rules that decide where a class goes, what a query may do, where an authorization check lives, and what a queued handler must survive.
Built for Laravel ^12.0 || ^13.0 on PHP ^8.3. Laravel 13-only APIs are marked inline, so the rules degrade safely on 12.
Install
npx skills add Foysal50x/skills/plugin marketplace add Foysal50x/skills
/plugin install laravel-skill@foysal50x
skills.sh and manual installs name the skills laravel-patterns, laravel-eloquent, laravel-rest-api, laravel-async, laravel-testing. The Claude Code plugin prefixes them with laravel-skill:.
What is in it
| Skill | Rules | Covers |
|---|---|---|
laravel-patterns |
60 | The Decision Gate — Action, Service, Repository, Query Class, Value Object, and when to just use Eloquent. Domain layout and inter-domain communication. |
laravel-eloquent |
45 | N+1 elimination, subquery selects and sorting, pagination strategy, transactions, casts and scopes, migrations, raw SQL placement, bulk writes. |
laravel-rest-api |
35 | Authorization, Form Requests and DTOs, scoped route model binding, API Resources, exception-to-status mapping, thin controllers, and outbound HTTP. |
laravel-async |
33 | Idempotent jobs, retries and backoff, queue operations, domain events, cache keys and invalidation, scheduling. |
laravel-testing |
20 | Which test style fits each layer, hand-written fakes over mocks, real-database query tests, feature tests. |
The through-line: practicality over purity. The default answer is to keep the logic in the Action and call Eloquent directly. A Repository, a Service or a Query Class has to name the trigger that earned it.
Built for how agents actually read
SKILL.mdis the whole index — 1.3k to 2.6k tokens, loaded when the skill triggers. It carries aPick the Ruletable routing from what you are about to write to the two or three rules that answer it, plus the non-negotiables and an anti-hallucination contract.- Every rule is one file under 2500 characters — a statement, the failure it prevents, one incorrect example and one correct one. Read one or two per task, not the whole set.
AGENTS.mdper skill is the same rules compiled into one document, for agents that follow the AGENTS.md convention.- Every framework API named in a rule was checked against the Laravel docs before it was written.
Tooling
npm run build # rules/*.md -> AGENTS.md
npm run validate # frontmatter, sections, cross-references, size budget, YAML strictness
npm run check # bothCI fails on a stale AGENTS.md, a rule over budget, a cross-reference to a rule that does not exist, or frontmatter a strict YAML parser would reject.