agent-creator
Use when creating expert agents. Generates agent.md with frontmatter, hooks, required sections, and skill references.
Use when building JSON:API spec-compliant endpoints in Laravel 13 with the first-party `JsonApiResource` base class.
Claude Code
$ npx -y skills add fusengine/claude-plugins --skill laravel-jsonapi --agent claude-code
Codex
$ npx skills add fusengine/claude-plugins --skill laravel-jsonapi -a codex -y
Cursor
$ npx skills add fusengine/claude-plugins --skill laravel-jsonapi -a cursor -y
Gemini CLI
$ npx skills add fusengine/claude-plugins --skill laravel-jsonapi -a gemini-cli -y
GitHub Copilot
$ npx skills add fusengine/claude-plugins --skill laravel-jsonapi -a github-copilot -y
OpenCode
$ npx skills add fusengine/claude-plugins --skill laravel-jsonapi -a opencode -y
Windsurf
$ npx skills add fusengine/claude-plugins --skill laravel-jsonapi -a windsurf -y
name: laravel-jsonapi description: Use when building JSON:API spec-compliant endpoints in Laravel 13 with the first-party `JsonApiResource` base class. versions: laravel: "13.0" php: "8.3" user-invocable: true references: references/resources.md, references/sparse-fieldsets.md, references/relationships.md, references/templates/PostResource.php.md, references/templates/UserResource.php.md related-skills: laravel-api, laravel-eloquent
<objective> Covers Laravel 13's JsonApiResource base class for JSON:API v1.1-compliant responses: $attributes / toAttributes(), $relationships / toRelationships(), toType() / toId() overrides, sparse fieldsets (?fields[type]=a,b), relationship inclusion (?include=) with the included array, resource identifiers, self/related links, and the application/vnd.api+json content type. For general (non-JSON:API-spec) REST API building, see laravel-api instead. </objective>
Before ANY implementation, spawn 3 agents in parallel, one `Agent` call each with a `name`:
1. **fuse-ai-pilot:explore-codebase** - Inventory existing `JsonResource` classes to migrate 2. **fuse-ai-pilot:research-expert** - Check JSON:API v1.1 spec for required headers and structure 3. **mcp__context7__query-docs** - Pull `laravel.com/docs/13.x/eloquent-resources` examples
After implementation, run **fuse-ai-pilot:sniper** for validation.
---
| Feature | Description | |---------|-------------| | **`JsonApiResource`** | Base class extending `JsonResource` with spec compliance | | **Content-Type** | Auto-sets `application/vnd.api+json` | | **Sparse fieldsets** | `?fields[posts]=title,created_at` | | **Inclusion** | `?include=author,comments` with `included` array | | **Resource identifiers** | `{"id":"1","type":"posts"}` in relationships | | **Links / meta** | `toLinks()` / `toMeta()` overrides |
---
1. **Extend `JsonApiResource`** - Never roll your own JSON:API serializer; the base class handles spec edge cases 2. **Type is derived from the class name** (`PostResource` → `posts`) - override `toType()` only when it must differ 3. **Use `$attributes` / `toAttributes()` not `toArray()`** - JSON:API splits attributes from identifiers; mixing them breaks compliance 4. **Whitelist relationships** - Declare `$relationships` (or `toRelationships()`) with only the relations clients may include 5. **Respect Content-Type** - Clients sending JSON:API requests MUST use `Accept: application/vnd.api+json`
---
app/Http/Resources/ ├── PostResource.php # extends JsonApiResource → type "posts" ├── UserResource.php # extends JsonApiResource → type "users" └── CommentResource.php # extends JsonApiResource → type "comments" app/Http/Controllers/ └── Api/PostController.php # returns PostResource::collection($posts)
→ See [PostResource.php.md](references/templates/PostResource.php.md) for full example
---
| Topic | Reference | When to Consult | |-------|-----------|-----------------| | **Base resource class** | [resources.md](references/resources.md) | Structuring `JsonApiResource` subclasses | | **Sparse fieldsets** | [sparse-fieldsets.md](references/sparse-fieldsets.md) | Implementing `fields[type]=a,b` | | **Relationships** | [relationships.md](references/relationships.md) | Inclusion + identifiers + links |
| Template | When to Use | |----------|-------------| | [PostResource.php.md](references/templates/PostResource.php.md) | Resource with belongsTo + hasMany | | [UserResource.php.md](references/templates/UserResource.php.md) | Simple resource with sparse fields |
---
// php artisan make:resource PostResource --json-api
use Illuminate\Http\Resources\JsonApi\JsonApiResource;
class PostResource extends JsonApiResource
{
public $attributes = ['title', 'body'];
public $relationships = ['author', 'comments'];
}return PostResource::collection(Post::with('author')->get());→ See [PostResource.php.md](references/templates/PostResource.php.md) for complete example
---
A plugin ecosystem that turns Claude Code into a supervised, multi-agent development environment.
Use when creating expert agents. Generates agent.md with frontmatter, hooks, required sections, and skill references.
Use when starting ANY development task -- feature, bug fix, refactor, hotfix (triggers: implement, create, build, fix, add…
Use when creating a feature/component or adding functionality. Fires BEFORE APEX Analyze to refine requirements via structured…
Use before a root-cause, done/verified claim, irreversible action, or 2nd-time fix reaches the owner (APEX or plain…
Use when validating code quality after modifications -- SOLID compliance, DRY duplication, linter errors, architecture…
Use when an expert agent self-reviews and self-corrects code after the Execute phase, before sniper validation (BMAD-METHOD…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.