Laravel Specialist
Jeffallan/claude-skills
Builds Laravel 10+ applications with Eloquent models, Sanctum authentication, Horizon queues, API resources and Livewire components, tested with Pest or PHPUnit.
Build filtered, sorted, and included API endpoints using spatie/laravel-query-builder.
$ npx skills add hexlet-volunteers/hexlet-sicp --skill laravel-query-builder -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hexlet-volunteers/hexlet-sicp laravel-query-builder --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/hexlet-volunteers/hexlet-sicp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/laravel-query-builder .claude/skills/laravel-query-builder && 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-query-builder" agent skill from https://github.com/hexlet-volunteers/hexlet-sicp/tree/main/.agents/skills/laravel-query-builder into .claude/skills/laravel-query-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel-query-builder", 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/hexlet-volunteers/hexlet-sicp/tree/main/.agents/skills/laravel-query-builderType 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 hexlet-volunteers/hexlet-sicp --skill laravel-query-builder -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hexlet-volunteers/hexlet-sicp laravel-query-builder --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hexlet-volunteers/hexlet-sicp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/laravel-query-builder .agents/skills/laravel-query-builder && 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-query-builder" agent skill from https://github.com/hexlet-volunteers/hexlet-sicp/tree/main/.agents/skills/laravel-query-builder into .agents/skills/laravel-query-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel-query-builder", 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 hexlet-volunteers/hexlet-sicp --skill laravel-query-builder -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hexlet-volunteers/hexlet-sicp laravel-query-builder --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hexlet-volunteers/hexlet-sicp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/laravel-query-builder .cursor/skills/laravel-query-builder && 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-query-builder" agent skill from https://github.com/hexlet-volunteers/hexlet-sicp/tree/main/.agents/skills/laravel-query-builder into .cursor/skills/laravel-query-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel-query-builder", 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/hexlet-volunteers/hexlet-sicp.git --path .agents/skills/laravel-query-builder--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 hexlet-volunteers/hexlet-sicp --skill laravel-query-builder -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hexlet-volunteers/hexlet-sicp laravel-query-builder --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hexlet-volunteers/hexlet-sicp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/laravel-query-builder .gemini/skills/laravel-query-builder && 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-query-builder" agent skill from https://github.com/hexlet-volunteers/hexlet-sicp/tree/main/.agents/skills/laravel-query-builder into .gemini/skills/laravel-query-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel-query-builder", 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 hexlet-volunteers/hexlet-sicp laravel-query-builderInstalls 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 hexlet-volunteers/hexlet-sicp --skill laravel-query-builder -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hexlet-volunteers/hexlet-sicp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/laravel-query-builder .github/skills/laravel-query-builder && 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-query-builder" agent skill from https://github.com/hexlet-volunteers/hexlet-sicp/tree/main/.agents/skills/laravel-query-builder into .github/skills/laravel-query-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel-query-builder", 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 hexlet-volunteers/hexlet-sicp --skill laravel-query-builder -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hexlet-volunteers/hexlet-sicp laravel-query-builder --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hexlet-volunteers/hexlet-sicp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/laravel-query-builder .opencode/skills/laravel-query-builder && 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-query-builder" agent skill from https://github.com/hexlet-volunteers/hexlet-sicp/tree/main/.agents/skills/laravel-query-builder into .opencode/skills/laravel-query-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "laravel-query-builder", 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.
laravel-query-builderBuild filtered, sorted, and included API endpoints using spatie/laravel-query-builder.
Laravel Query Builder is an agent skill from hexlet-volunteers/hexlet-sicp. Build filtered, sorted, and included API endpoints using spatie/laravel-query-builder. Activates when working with QueryBuilder, AllowedFilter, AllowedSort, AllowedInclude, or when the user mentions query parameters, API filtering, sorting, includes, or spatie/laravel-query-builder.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering ORMs and data access, Backend development and REST APIs. It works with Laravel. The repository describes itself as: Hexlet SICP is a service for those studying the book Structure and Interpretation of Computer Programs. Track your progress and match yourself against others on the global… The licence is MIT.
Read from SKILL.md and the folder at commit 4113c36. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are php).
From 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 Query Builder loads about 2.4k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 222 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 found no risky patterns in SKILL.md.
Automated 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); files beside SKILL.md are not scanned.
The full file from hexlet-volunteers/hexlet-sicp at commit 4113c36, republished under its MIT licence (© hexlet-volunteers). 222 words, ~2,357 tokens.
.claude/skills/laravel-query-builder/SKILL.md (or your agent's skills folder).Activate this skill when:
use Spatie\QueryBuilder\QueryBuilder;
use Spatie\QueryBuilder\AllowedFilter;
use Spatie\QueryBuilder\AllowedInclude;
use Spatie\QueryBuilder\AllowedSort;
// GET /users?filter[name]=John&sort=-created_at&include=posts
$users = QueryBuilder::for(User::class)
->allowedFilters('name', 'email')
->allowedSorts('name', 'created_at')
->allowedIncludes('posts', 'permissions')
->allowedFields('id', 'name', 'email')
->get();use Spatie\QueryBuilder\AllowedFilter;
QueryBuilder::for(User::class)
->allowedFilters(
AllowedFilter::partial('name'), // WHERE name LIKE '%value%' (default)
AllowedFilter::exact('email'), // WHERE email = 'value'
AllowedFilter::beginsWith('name'), // WHERE name LIKE 'value%'
AllowedFilter::endsWith('name'), // WHERE name LIKE '%value'
AllowedFilter::scope('active'), // Calls scopeActive()
AllowedFilter::callback('search', fn ($query, $value) => ...),
AllowedFilter::exact('role')->default('user'), // Default filter value
AllowedFilter::exact('status')->nullable(), // Allows null values
AllowedFilter::exact('role')->ignore('admin'), // Ignores specific values
AllowedFilter::belongsTo('author'), // Filter by BelongsTo relationship
AllowedFilter::trashed(), // Filter soft deletes (with, only, without)
);use Spatie\QueryBuilder\AllowedFilter;
use Spatie\QueryBuilder\Enums\FilterOperator;
QueryBuilder::for(User::class)
->allowedFilters(
AllowedFilter::operator('salary', FilterOperator::GreaterThan),
AllowedFilter::operator('age', FilterOperator::LessThanOrEqual),
AllowedFilter::operator('salary', FilterOperator::Dynamic), // Operator from request
);
// GET /users?filter[salary]=gt:50000 (with Dynamic operator)Filter by related model properties using dot notation:
// GET /users?filter[posts.title]=Laravel
QueryBuilder::for(User::class)
->allowedFilters(AllowedFilter::partial('posts.title'));// GET /users?filter[email]=john
// Queries the 'user_email' column
AllowedFilter::exact('email', 'user_email');Implement Spatie\QueryBuilder\Filters\Filter:
use Spatie\QueryBuilder\Filters\Filter;
use Illuminate\Database\Eloquent\Builder;
class FiltersUserPermission implements Filter
{
public function __invoke(Builder $query, mixed $value, string $property): void
{
$query->whereHas('permissions', fn ($q) => $q->where('name', $value));
}
}
AllowedFilter::custom('permission', new FiltersUserPermission());use Spatie\QueryBuilder\AllowedSort;
use Spatie\QueryBuilder\Enums\SortDirection;
QueryBuilder::for(User::class)
->allowedSorts(
'name',
'created_at',
AllowedSort::field('order', 'sort_order'), // Alias: ?sort=order queries sort_order
AllowedSort::custom('popular', new SortMostPopular()),
AllowedSort::callback('random', fn ($query, $descending) => $query->inRandomOrder()),
)
->defaultSort('name')
->defaultSorts('name', AllowedSort::field('date', 'created_at')->defaultDirection(SortDirection::Descending));
// GET /users?sort=-created_at,name (descending created_at, ascending name)Implement Spatie\QueryBuilder\Sorts\Sort:
use Spatie\QueryBuilder\Sorts\Sort;
use Illuminate\Database\Eloquent\Builder;
use Spatie\QueryBuilder\Enums\SortDirection;
class SortMostPopular implements Sort
{
public function __invoke(Builder $query, SortDirection $direction, string $property): void
{
$query->withCount('followers')->orderBy('followers_count', $direction->value);
}
}use Spatie\QueryBuilder\AllowedInclude;
QueryBuilder::for(User::class)
->allowedIncludes(
'posts', // Eager loads posts (also allows postsCount and postsExists)
'posts.comments', // Nested eager loading
AllowedInclude::count('commentsCount'), // Only withCount, no full relation
AllowedInclude::exists('postsExists'), // Only withExists
AllowedInclude::relationship('profile', 'userProfile'), // Alias
AllowedInclude::callback('latestPost', fn ($query) => $query->latestOfMany()),
);
// GET /users?include=posts,commentsCount,postsExistsAllowedInclude::min('postsViewsMin', 'posts', 'views'); // withMin('posts', 'views')
AllowedInclude::max('postsViewsMax', 'posts', 'views'); // withMax('posts', 'views')
AllowedInclude::sum('postsViewsSum', 'posts', 'views'); // withSum('posts', 'views')
AllowedInclude::avg('postsViewsAvg', 'posts', 'views'); // withAvg('posts', 'views')
// GET /users?include=postsViewsSum,postsViewsAvgImplement Spatie\QueryBuilder\Includes\IncludeInterface:
use Spatie\QueryBuilder\Includes\IncludeInterface;
use Illuminate\Database\Eloquent\Builder;
class IncludeLatestPost implements IncludeInterface
{
public function __invoke(Builder $query, string $include): void
{
$query->with(['latestPost' => fn ($q) => $q->latest()]);
}
}
AllowedInclude::custom('latestPost', new IncludeLatestPost());// GET /users?fields[users]=id,name&fields[posts]=id,title&include=posts
QueryBuilder::for(User::class)
->allowedFields('id', 'name', 'email')
->allowedIncludes('posts')
->get();Published to config/query-builder.php:
return [
// Custom query parameter names
'parameters' => [
'include' => 'include',
'filter' => 'filter',
'sort' => 'sort',
'fields' => 'fields',
],
// Array value delimiter
'delimiter' => ',',
// Include suffixes (for count, exists, and aggregate includes)
'suffixes' => [
'count' => 'Count',
'exists' => 'Exists',
'min' => 'Min',
'max' => 'Max',
'sum' => 'Sum',
'avg' => 'Avg',
],
// Disable exception throwing for invalid queries
'disable_invalid_filter_query_exception' => false,
'disable_invalid_sort_query_exception' => false,
'disable_invalid_include_query_exception' => false,
];Allow any requested filter, sort, or include without explicit listing. Restricted to local and testing environments:
QueryBuilder::for(User::class)
->allowedFilters('*')
->allowedSorts('*')
->allowedIncludes('*');// From an Eloquent query
QueryBuilder::for(User::where('active', true))
->allowedFilters('name')
->get();
// From a relation
QueryBuilder::for($team->users())
->allowedFilters('name')
->get();class UsersController
{
public function index()
{
$users = QueryBuilder::for(User::class)
->allowedFilters(
AllowedFilter::partial('name'),
AllowedFilter::exact('email'),
AllowedFilter::scope('active'),
)
->allowedSorts('name', 'created_at')
->allowedIncludes('posts', 'permissions')
->allowedFields('id', 'name', 'email')
->defaultSort('name')
->paginate();
return UserResource::collection($users);
}
}$filters = ['name', 'email'];
$sorts = ['name', 'created_at'];
QueryBuilder::for(User::class)
->allowedFilters(...$filters)
->allowedSorts(...$sorts);allowedIncludes() to eager load relationships instead of accessing them in views/resources without loadingAllowedFilter::exact() for boolean/integer columns, or handle casting in custom filtersposts.commentsallowedFields() with allowedIncludes(), make sure to include the foreign key columns needed for the relationships© hexlet-volunteers, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/laravel-query-builder of hexlet-volunteers/hexlet-sicp.
Open the folder on GitHubat commit 4113c36
Laravel Query Builder 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 Query Builder this skillhexlet-volunteers/hexlet-sicp | 114 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Laravel SpecialistJeffallan/claude-skills | 12k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Fastcrudbenavlabs/fastcrud | 1.6k | — | ~5k | Automated safety check: Pass | MIT | |
| Grails Developer Guideapache/grails-core | 2.9k | — | ~4.9k | Automated safety check: Pass | Apache-2.0 | |
| C# and .NET DeveloperJeffallan/claude-skills | 12k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Django ExpertJeffallan/claude-skills | 12k | — | ~1.5k | Automated safety check: Pass | MIT |
Jeffallan/claude-skills
Builds Laravel 10+ applications with Eloquent models, Sanctum authentication, Horizon queues, API resources and Livewire components, tested with Pest or PHPUnit.
benavlabs/fastcrud
A skill your agent uses when building or modifying CRUD endpoints with FastCRUD (the fastcrud PyPI package) in a FastAPI project — covers FastCRUD, crudrouter, EndpointCreator, FilterConfig…
apache/grails-core
Guides building Grails web applications and REST APIs with GORM, controllers, services, views, plugins and Spock and Geb testing.
Jeffallan/claude-skills
Guides C# work on .NET 8+: ASP.NET Core APIs, Entity Framework Core data access, Blazor apps and CQRS with MediatR, following a five-step build workflow.
Jeffallan/claude-skills
Builds Django apps and Django REST Framework APIs: models with indexes, ORM query optimization, serializers, viewsets and JWT authentication, with tests.
Jeffallan/claude-skills
Builds async Python APIs with FastAPI and Pydantic V2, covering endpoints, JWT authentication, async SQLAlchemy, WebSockets and pytest checks against the OpenAPI docs.
hexlet-volunteers/hexlet-sicp
Inspect what a Laravel request actually did — queries, exceptions, timing, cache, auth, views — by reading the profiling data Laravel Debugbar already captured, via Artisan commands.
hexlet-volunteers/hexlet-sicp
Manages OAuth social authentication with Laravel Socialite. An agent skill from hexlet-volunteers/hexlet-sicp.
hexlet-volunteers/hexlet-sicp
Develops Inertia.js v3 React client-side applications. An agent skill from hexlet-volunteers/hexlet-sicp.
Works with
Categories
Build filtered, sorted, and included API endpoints using spatie/laravel-query-builder. Laravel Query Builder is an agent skill from hexlet-volunteers/hexlet-sicp. Build filtered, sorted, and included API endpoints using spatie/laravel-query-builder.
Laravel Query Builder fits situations like: mentions query parameters; spatie/laravel-query-builder.
Run `npx skills add hexlet-volunteers/hexlet-sicp --skill laravel-query-builder -a claude-code`. Or copy the skill folder (.agents/skills/laravel-query-builder in hexlet-volunteers/hexlet-sicp) into .claude/skills/laravel-query-builder in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hexlet-volunteers/hexlet-sicp --skill laravel-query-builder -a codex`. Or copy the skill folder (.agents/skills/laravel-query-builder in hexlet-volunteers/hexlet-sicp) into .agents/skills/laravel-query-builder 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 hexlet-volunteers/hexlet-sicp --skill laravel-query-builder -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-query-builder, .gemini/skills/laravel-query-builder, .github/skills/laravel-query-builder and .opencode/skills/laravel-query-builder in your project.
SKILL.md names no scripts, command-line tools or credentials: Laravel Query Builder is instructions for the agent only.
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 no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Laravel Query Builder is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Laravel Query Builder: Laravel Specialist (Jeffallan/claude-skills, 12k stars), Fastcrud (benavlabs/fastcrud, 1.6k stars), Grails Developer Guide (apache/grails-core, 2.9k stars) and C# and .NET Developer (Jeffallan/claude-skills, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hexlet-volunteers (a GitHub organization) maintains it in hexlet-volunteers/hexlet-sicp, which has 114 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 5, 2026.
Source: hexlet-volunteers/hexlet-sicp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.