laravel-project-patterns

v2026.09.25

Use the catalog’s Pest test patterns for Laravel controllers, models, HTTP Resources, enums, actions and media listeners.

GitHub
Install command
npx skhub add hosmelq/laravel-project-patterns
Markdown
SKILL.md

Laravel Project Patterns

Adapt fictional domain types and helpers to inspected contracts, keep reference-project identities confidential, and preserve real APIs such as sqid and HasSqid. For uncovered behavior, report the gap and follow the project’s conventions.

Inspect affected code, nearby tests and test configuration; use their actual namespaces and suite paths.

Retrieve Missing Patterns

Reuse examples and candidate descriptions already in this context first. For missing behavior, write temporary JSON with request, paths (actual project paths), and code_context (concise inspected facts), then use:

uv run <skill-directory>/scripts/search.py search --task-file=<task.json> --session=<session.json>
uv run <skill-directory>/scripts/search.py read --session=<session.json> --ids <id> <id>

Search returns five ranked candidates; new IDs include applicability and token cost, known IDs only id and read. Select the smallest applicable set. For a complete block select its ordered checklist: create, destroy, edit, index, show, store, update, authentication or move. Initial and default selection include their ordered cases. For model work use the model checklist; for HTTP Resources use the resource checklist; for enums use the enum checklist; for actions use the action checklist. Media dimensions belong to Listener tests. Keep standalone tests at file scope when the suite uses no describe. A specialized example covers its stated assertions; retrieve another only for missing contracts. Search uncovered requirements with relevant facts; --limit=10 can broaden a shortlist. Rank and shortlist size do not prove coverage. Do not glob the catalog or open its linked files directly.

Read emits complete Markdown examples and a receipt; blocked IDs need another batch (4,000 source tokens per response). read: true means already emitted: reuse that content; repeated reads omit it. Use one temporary session outside the skill per task/agent context. After compaction use a new session to restore descriptions, or read --repeat if the needed ID remains known. Receipts are not model memory. Changed sources require searching again.

Keep canonical test names, documented case order, fixtures, assertions and datasets. Keep behavior qualifiers (parent/ancestor, case-insensitive, relation state). Add : field_name only to distinguish separate tests within one block; named dataset rows already distinguish fields. Do not introduce behavior to match an example. Prefer one line for simple calls of up to 100 characters; wrap longer calls or when a break improves readability.

Inspect factory definitions: use recycle() for existing default parents and derive unmodified intermediates from the created record. Keep trashed parents explicit. Use for() for optional or role-specific relations, root-only tenant assignment and deliberate mismatches. Recycling reaches nested factories, matches model type and leaves fixed/derived foreign keys unchanged; verify option-list membership and avoid same-type pools when an exact parent matters.

First search installs dependencies, downloads the model and builds the index; later searches refresh changed Markdown. Read loads no model. Resolve failures using the search guide. Benchmark evidence is optional. Maintainers may inspect catalog files directly.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.25

Published

Sep 25, 2026

Category

Uncategorized

License

Not specified

Source path

skills/laravel-project-patterns

Default branch

main

Latest commit

abfe33e

Tree SHA

d3c8537