К основному содержанию
скилл CX Codex

laravel-tdd · iserter — скилл для Claude Code: TDD на Pest PHP

Скилл ведёт агента по циклу red-green-refactor в Laravel: сначала падающий тест на Pest, потом минимальный код, потом рефакторинг.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add iSerter/laravel-claude-agents --skill laravel-tdd -a claude-code
Открыть на GitHub

Что делает laravel-tdd

Скилл задаёт порядок работы над любой фичей или багфиксом в Laravel: тест пишется первым, запускается и должен упасть, только после этого появляется код, достаточный для прохождения. Цикл выглядит так: RED, проверка RED, GREEN, проверка GREEN, REFACTOR. Проверка идёт через php artisan test, отдельный тест можно прогнать фильтром по имени.

Внутри — готовые шаблоны тестов под Laravel: фабрики и RefreshDatabase для работы с базой, actingAs для авторизации, assertForbidden для политик, postJson с sanctum для API. Есть чек-лист проверки: миграции, связи моделей, действия контроллеров, правила валидации, состояние базы. Рефакторинг разрешён только после зелёного теста — вынос сервисов, политики, query scopes, события.

Исключения скилл оставляет на усмотрение человека: одноразовые прототипы, конфиги, изменения только во вьюхах без логики. Для работы нужен проект на Laravel с Pest PHP.

Какие задачи решает

  • написать падающий тест до кода фичи
  • проверить авторизацию через политики Laravel
  • протестировать API-эндпоинт с токеном sanctum
  • убедиться, что миграция и модель согласованы
  • вынести сложную логику в сервис после зелёного теста

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

  • напиши тест на создание поста авторизованным пользователем, потом реализуй
  • добавь проверку, что пользователь не может удалить чужой пост
  • покрой тестами API-эндпоинт создания поста

Как установить laravel-tdd

1Через Skills CLI (Vercel)

npx skills add iSerter/laravel-claude-agents --skill laravel-tdd -a claude-code

2Вручную: положить файлы

~/.claude/skills/laravel-tdd/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/laravel-tdd/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о laravel-tdd

Как установить laravel-tdd в Claude?

Выполните npx skills add iSerter/laravel-claude-agents --skill laravel-tdd -a claude-code. Скилл окажется в ~/.claude/skills/laravel-tdd/SKILL.md.

Что делает laravel-tdd?

Заставляет агента писать тест на Pest PHP до кода, проверять его падение, затем писать минимальную реализацию и только потом рефакторить.

Для каких платформ подходит скилл?

Кроме Claude есть установка для Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode — команда та же, меняется флаг -a.

Исходный текст

SKILL.md · MIT
---
name: laravel-tdd
description: Test-Driven Development specifically for Laravel applications using Pest PHP. Use when implementing any Laravel feature or bugfix - write the test first, watch it fail, write minimal code to pass.
---

# Test-Driven Development for Laravel

## Overview

Write the test first. Watch it fail. Write minimal code to pass.

This skill adapts TDD principles specifically for Laravel applications using Pest PHP, Laravel's testing features, and framework-specific patterns.

## When to Use

**Always for Laravel:**
- New features (controllers, models, services)
- Bug fixes
- API endpoints
- Database migrations and models
- Form validation
- Authorization policies
- Queue jobs
- Artisan commands
- Middleware

**Exceptions (ask your human partner):**
- Throwaway prototypes
- Configuration files
- View-only changes (no logic)

## The Laravel TDD Cycle

```
RED → Verify RED → GREEN → Verify GREEN → REFACTOR → Repeat
```

### RED - Write Failing Test

Write one minimal test showing what the Laravel feature should do.

**Feature Test Example:**
```php
<?php

use App\Models\User;
use App\Models\Post;

test('authenticated user can create post', function () {
    $user = User::factory()->create();
    
    $this->actingAs($user)
        ->post('/posts', [
            'title' => 'My First Post',
            'content' => 'Post content here',
        ])
        ->assertRedirect('/posts');
    
    expect(Post::where('title', 'My First Post')->exists())->toBeTrue();
    expect(Post::first()->user_id)->toBe($user->id);
});
```

### Verify RED - Watch It Fail

```bash
php artisan test --filter=authenticated_user_can_create_post
```

### GREEN - Minimal Laravel Code

Write simplest Laravel code to pass the test.

### Verify GREEN - Watch It Pass

```bash
php artisan test
```

### REFACTOR - Clean Up Laravel Code

After green only:
- Extract services for complex logic
- Create policies for authorization
- Add query scopes for reusability
- Use events for side effects

## Laravel-Specific Test Patterns

### Database Testing
```php
use Illuminate\Foundation\Testing\RefreshDatabase;

uses(RefreshDatabase::class);

test('creates post in database', function () {
    $user = User::factory()->create();
    
    $this->actingAs($user)
        ->post('/posts', ['title' => 'Test', 'content' => 'Content']);
    
    $this->assertDatabaseHas('posts', ['title' => 'Test']);
});
```

### Authorization Testing
```php
test('user cannot delete others posts', function () {
    $user = User::factory()->create();
    $post = Post::factory()->create();
    
    $this->actingAs($user)
        ->delete("/posts/{$post->id}")
        ->assertForbidden();
});
```

### API Testing
```php
test('creates post via API', function () {
    $user = User::factory()->create();
    
    $this->actingAs($user, 'sanctum')
        ->postJson('/api/posts', ['title' => 'API Post', 'content' => 'Content'])
        ->assertCreated();
});
```

## Verification Checklist

- [ ] Migration test passes
- [ ] Model relationships tested
- [ ] Controller actions tested
- [ ] Validation rules tested
- [ ] Authorization tested
- [ ] Database state verified
- [ ] All tests passing
- [ ] Used RefreshDatabase
- [ ] Used factories

## Remember

```
Every Laravel feature → Test exists and failed first
Otherwise → Not TDD
```

© iSerter · MIT · iSerter/laravel-claude-agents

Похожие скиллы

Всё по теме «Тесты и QA» →

Сначала — laravel-tdd от других авторов.

laravel-tdd affaan-m Помогает писать тесты для Laravel через TDD на PHPUnit или Pest. Скилл даёт шаблоны фабрик моделей, проверок Eloquent и HTTP-тестов. CX Codex +1 4 900установок pest-testing spatie Скилл настраивает работу с тестовым фреймворком Pest 4 в PHP. Он помогает писать юнит-, фиче-, браузерные и архитектурные тесты по правилам экосистемы. CX Codex +1 716установок laravel-specialist https://github.com/Jeffallan Настраивает агента на разработку бэкенда на Laravel 10+ и PHP 8.2+. Помогает писать модели Eloquent, очереди Horizon, API resources и тесты Pest. CX Codex +1 23 300установок laravel-11-12-app-guidelines thienanblog Скилл задаёт правила работы с проектами на Laravel 11 и 12. Он заставляет агента проверять реальное окружение перед внесением правок, а не угадывать дефолты чистой установки. CX Codex +1 976установок laravel-verification affaan-m Прогоняет проект на Laravel по фазам: окружение, линт, статический анализ, тесты с покрытием, аудит зависимостей и готовность к деплою. Пригодится перед PR и релизом. CX Codex +1 4 700установок php-pro https://github.com/Jeffallan Задаёт правила разработки на PHP 8.3+ для Laravel и Symfony: включает strict_types, анализ в PHPStan на уровне 9 и тесты PHPUnit или Pest. CX Codex +1 15 500установок filament-pro marcelorodrigo Скилл для сборки админ-панелей Laravel на Filament v5: ресурсы, формы, таблицы, виджеты и тесты на Livewire v4. CX Codex +1 1 200установок

Из того же набора2

Спонсоры проекта

Компании, которые помогают держать аналитику открытой