High-level architecture decisions, patterns, and project structure. Use when deciding which pattern to use, organizing code, or making structural decisions.
Background jobs and event listeners for async processing. Use when creating or modifying jobs, queues, listeners, or event-driven workflows.
Package development and extraction of reusable code. Use when creating, extracting, or modifying composer packages.
Service providers, bootstrapping, and application configuration. Use when modifying service providers, booters, bootstrap logic, or app-level configuration.
Code quality tooling with PHPStan, Pint, and strict types. Use when configuring or running static analysis, code style, or linting.
Route configuration, route model binding, and authorization. Use when defining routes, configuring model binding, or setting up route-level authorization.
Comprehensive testing patterns with Pest. Use when writing or modifying tests, mocking, factories, or test patterns.
Immutable value objects for domain values. Use when creating or modifying value objects like money, coordinates, or other domain primitives.