Архитектура Laravel API

Laravel API Production-Ready Architecture Skill

Скилл, который удерживает агента в слоистой архитектуре Laravel API: JSON:API v1.1, строгие типы, PHPStan level 8 и тесты

СкиллНизкий риск

streeboga/laravel-api-skill

Установка

npx skills add streeboga/laravel-api-skill

CLAUDE.md настраивается при первом использовании.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Скилл задает цепочку Controller, Service, Repository, QueryBuilder, Model и четкие границы ответственности слоев. По запросу на новую сущность агент генерирует 14 файлов: миграцию, модель с ULID-ключами, enum, DTO на Spatie Data, FormRequest, QueryBuilder, репозиторий, сервис, контроллер, JsonApiResource, маршруты и feature-тесты. При первом запуске скилл создает или дополняет CLAUDE.md проекта, чтобы правила действовали в каждой сессии. Справочники по слоям загружаются только под текущую задачу.

Для кого. Для PHP-разработчиков и команд, которые пишут API на Laravel и хотят единообразный код от агента.

Подходит, если

  • Нужно создать новую сущность API со всеми слоями и тестами
  • Нужно провести ревью Laravel-кода по чеклисту из 13 разделов
  • Нужно привести проект к JSON:API и PHPStan level 8

Не подходит, если

  • Проект не на Laravel или это не API
  • Команда использует другую архитектуру и не планирует переходить на эту

Пример запроса к агенту

Создай сущность Invoice с CRUD-эндпоинтами, фильтрацией по статусу и тестами

Ограничения

Требуются PHP 8.2+, Laravel 10+ и конкретный набор пакетов: timacdonald/json-api, spatie/laravel-query-builder, spatie/laravel-data и другие. Архитектура жесткая, например scopes в моделях запрещены. Скилл сам меняет CLAUDE.md в корне проекта.

Как отключить. Удалите скилл laravel-api из каталога скиллов и уберите секцию Laravel-архитектуры из CLAUDE.md проекта.

Проверка безопасности

  • Скилл состоит из инструкций и шаблонов
  • При первом запуске изменяет CLAUDE.md проекта

Коротко о README

README открытого проекта EQ Platform описывает скилл для Laravel API с установкой через npx skills и автоматической настройкой CLAUDE.md. Приведены таблица границ слоев, список 14 генерируемых файлов, структура справочников и список обязательных пакетов. Разделы MUST DO и MUST NOT DO фиксируют строгие типы, final-классы, покрытие тестами от 85% и запрет на baseline PHPStan. Подробные сценарии работы описаны в README.ru.md.

SKILL.md

---
name: laravel-api
description: "Laravel API architecture and code generation guide. JSON:API v1.1 spec compliant. Enforces layered architecture: Controller → Service → Repository → QueryBuilder. Uses timacdonald/json-api for resources, spatie/laravel-query-builder for filtering/sorting. Covers DTOs, Enums, public keys, Scramble docs, testing. MANDATORY TRIGGERS: Laravel API, REST API, JSON:API, создание API, архитектура Laravel, генерация CRUD, сервисный слой, репозиторий, DTO, API ресурс. Use this skill whenever the user works on a Laravel API project, creates new entities/endpoints, reviews Laravel code, or asks about Laravel API architecture patterns."
license: MIT
compatibility: "Requires PHP 8.2+, Laravel 10+, Composer"
metadata:
  author: streeboga
  version: "1.0"
---

# Laravel API Production-Ready Architecture (JSON:API v1.1)

## SETUP GATE (выполни перед любой работой)

При первом вызове этого скилла в проекте проверь CLAUDE.md в корне проекта:

1. Если файла CLAUDE.md нет — прочитай `templates/CLAUDE.md` из директории этого скилла и создай CLAUDE.md в корне проекта с его содержимым.
2. Если CLAUDE.md существует, но НЕ содержит секцию "## Архитектура (нарушение = баг)" — прочитай `templates/CLAUDE.md` и ДОПИШИ его содержимое в конец существующего CLAUDE.md.
3. Если секция уже есть — всё ок, продолжай работу.

---

This skill defines the architecture and code patterns for all Laravel API projects. Every new entity, endpoint, or feature must follow these rules.

## Core Architecture

```
HTTP Request → Route → Middleware → Controller → Service → Repository → QueryBuilder (scopes) → Model → DB
Response    ← JsonApiResource      ← Service   ← Repository ← QueryBuilder
```

### Strict Layer Boundaries (CRITICAL)

```
Controller ──→ Service ONLY (never Repository, never Model)
Service    ──→ Repository (never Model::query() directly)
Repository ──→ QueryBuilder + Model
```

**DB access policy:** Only Repository and QueryBuilder may touch the database. No `Model::query()`, `::create()`, `->save()`, `->delete()` in Controllers or Services.

Частые вопросы

Зачем скиллу CLAUDE.md?

CLAUDE.md загружается в каждой сессии и работает как диспетчер фаз: определяет тип задачи и заставляет агента прочитать нужные справочники до написания кода.

Сколько контекста занимает скилл?

SKILL.md около 170 строк, при создании сущности вместе со справочниками примерно до 1700 строк.

Выбор редакции

Официальные скиллы и агенты команды .NET: производительность, MSBuild, NuGet, миграции, тесты, ASP.NET Core, Blazor и MAUI

ПлагинСредний риск5,4 тыс.

tt (Tarantool CLI)

Tarantool CLI

Утилита tt для управления экземплярами, окружениями и пакетами Tarantool при разработке и эксплуатации

CLIСредний риск113

Скилл Wildberries Seller API

Wildberries Seller API - Agent Skill

Скилл-справочник по Wildberries Seller API на локальных Swagger-файлах с поиском на русском и английском

СкиллНизкий рискРоссийский стек6

Скилл Ozon Seller API

Ozon Seller API — Agent Skill

Скилл-справочник по Ozon Seller API: полный swagger.json и Node.js-скрипт для компактного поиска эндпоинтов и схем

СкиллНизкий рискРоссийский стек4