agent-creator
Use when creating expert agents. Generates agent.md with frontmatter, hooks, required sections, and skill references.
Use when testing controllers, services, or models, or implementing TDD on Laravel 13 with Pest 4 / PHPUnit 12.
$ npx -y skills add fusengine/agents --skill laravel-testing --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/laravel-testingContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when testing controllers, services, or models, or implementing TDD on Laravel 13 with Pest 4 / PHPUnit 12.
name: laravel-testing description: Use when testing controllers, services, or models, or implementing TDD on Laravel 13 with Pest 4 / PHPUnit 12. versions: laravel: "13.0" pest: "4.0" phpunit: "12.0" php: "8.3" user-invocable: false references: references/pest-basics.md, references/pest-datasets.md, references/pest-arch.md, references/http-requests.md, references/http-json.md, references/http-auth.md, references/http-assertions.md, references/database-basics.md, references/database-factories.md, references/database-assertions.md, references/mocking-services.md, references/mocking-fakes.md, references/mocking-http.md, references/console-tests.md, references/troubleshooting.md, references/templates/FeatureTest.php.md, references/templates/UnitTest.php.md, references/templates/ArchTest.php.md, references/templates/ApiTest.php.md, references/templates/PestConfig.php.md related-skills: laravel-architecture, laravel-eloquent
<objective> Covers Laravel 13 testing with Pest 4 and PHPUnit 12: feature tests (HTTP, full stack), unit tests (isolated classes), and architecture tests; Pest syntax (it/test/describe), datasets; HTTP testing (requests, JSON assertions, auth/actingAs, status/redirect assertions); database testing (RefreshDatabase, factories, DB assertions); mocking (services, spies, Mail/Queue/Event fakes, Http::fake, time travel); console/Artisan command tests; and PHPUnit-attribute-based seeding (#[Seed], #[Seeder]). </objective>
Before ANY implementation, spawn 3 agents in parallel, one `Agent` call each with a `name`:
1. **fuse-ai-pilot:explore-codebase** - Analyze existing test patterns 2. **fuse-ai-pilot:research-expert** - Verify Pest/PHPUnit docs via Context7 3. **mcp__context7__query-docs** - Check assertion and mocking patterns
After implementation, run **fuse-ai-pilot:sniper** for validation.
---
| Type | Purpose | Location | |------|---------|----------| | **Feature** | HTTP, full stack | `tests/Feature/` | | **Unit** | Isolated classes | `tests/Unit/` | | **Arch** | Code architecture | `tests/Arch.php` |
---
What to test? ├── HTTP endpoint → Feature test ├── Service/Policy logic → Unit test ├── Code structure → Arch test ├── External API → Mock with Http::fake() ├── Mail/Queue/Event → Use Fakes └── Database state → assertDatabaseHas()
---
Coverage strategy? ├── Feature tests (70%) → Critical flows ├── Unit tests (25%) → Business logic ├── E2E tests (5%) → User journeys └── Arch tests → Structural rules
---
1. **Use RefreshDatabase** for database isolation 2. **Use factories** for test data (never raw inserts) 3. **Mock external services** - Never call real APIs 4. **Test edge cases** - Empty, null, boundaries 5. **Run parallel** - `pest --parallel` for speed
---
| Topic | Reference | When to Consult | |-------|-----------|-----------------| | **Pest Syntax** | [pest-basics.md](references/pest-basics.md) | it(), test(), describe() | | **Datasets** | [pest-datasets.md](references/pest-datasets.md) | Data providers, hooks | | **Architecture** | [pest-arch.md](references/pest-arch.md) | arch() tests |
| Topic | Reference | When to Consult | |-------|-----------|-----------------| | **Requests** | [http-requests.md](references/http-requests.md) | GET, POST, headers | | **JSON API** | [http-json.md](references/http-json.md) | API assertions | | **Authentication** | [http-auth.md](references/http-auth.md) | actingAs, guards | | **Assertions** | [http-assertions.md](references/http-assertions.md) | Status, redirects |
| Topic | Reference | When to Consult | |-------|-----------|-----------------| | **Basics** | [database-basics.md](references/database-basics.md) | RefreshDatabase | | **Factories** | [database-factories.md](references/database-factories.md) | Factory patterns | | **Assertions** | [database-assertions.md](references/database-assertions.md) | DB assertions |
| Topic | Reference | When to Consult | |-------|-----------|-----------------| | **Services** | [mocking-services.md](references/mocking-services.md) | Mock, spy | | **Fakes** | [mocking-fakes.md](references/mocking-fakes.md) | Mail, Queue, Event | | **HTTP & Time** | [mocking-http.md](references/mocking-http.md) | Http::fake, travel |
| Topic | Reference | When to Consult | |-------|-----------|-----------------| | **Console** | [console-tests.md](references/console-tests.md) | Artisan tests | | **Troubleshooting** | [troubleshooting.md](references/troubleshooting.md) | Common errors |
| Template | When to Use | |----------|-------------| | [FeatureTest.php.md](references/templates/FeatureTest.php.md) | HTTP feature test | | [UnitTest.php.md](references/templates/UnitTest.php.md) | Service unit test | | [ArchTest.php.md](references/templates/ArchTest.php.md) | Architecture test | | [ApiTest.php.md](references/templates/ApiTest.php.md) | REST API test | | [PestConfig.php.md](references/templates/PestConfig.php.md) | Pest configuration |
---
// Feature test
it('creates a post', function () {
$user = User::factory()->create();
$this->actingAs($user)
->postJson('/api/posts', ['title' => 'Test'])
->assertCreated()
->assertJsonPath('data.title', 'Test');
$this->assertDatabaseHas('posts', ['title' => 'Test']);
});
// With dataset
it('validates emails', function (string $email, bool $valid) {
// test logic
})->with([
['valid@test.com', true],
['invalid', false],
]);
// Mock facade
Mail::fake();
// ... action ...
Mail::assertSent(OrderShipped::class);---
# Run all tests php artisan test # Pest directly ./vendor/bin/pest # Parallel execution ./vendor/bin/pest --parallel # Filter by name ./vendor/bin/pest --
A plugin ecosystem that turns Claude Code into a supervised, multi-agent development environment.
Repo: fusengine/agents
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 feature, refactor, develop).
Use when creating a feature/component or adding functionality. Fires BEFORE APEX Analyze to refine requirements via structured questioning.
Use before a root-cause, done/verified claim, irreversible action, or 2nd-time fix reaches the owner (APEX or plain conversation); also fires at every…
Use when validating code quality after modifications -- SOLID compliance, DRY duplication, linter errors, architecture violations. Do NOT use for functional…
Use when an expert agent self-reviews and self-corrects code after the Execute phase, before sniper validation (BMAD-METHOD elicitation techniques).