Introduces Filament management for site settings, services, portfolio cases, and testimonials with admin-only policies, validated media uploads, and deterministic seeding. Includes comprehensive design and task documentation for the implementation. Co-authored-by: Cursor <cursoragent@cursor.com>
1.7 KiB
1.7 KiB
ADDED Requirements
Requirement: Standardized Composer test scripts exist
The system SHALL expose Composer scripts equivalent to test:unit, test:feature, test:browser, test, and quality with the composition defined in SPEC §13.9.
Scenario: Developer runs full quality gate locally
- WHEN a developer runs
composer quality - THEN the command executes static analysis, audits, and the applicable test suites
Requirement: Architecture tests enforce domain boundaries
The system SHALL include Pest architecture tests that verify App\Domain uses strict types and does not depend on App\Filament or App\Livewire.
Scenario: Domain layer violates boundary
- WHEN code in
App\Domainimports fromApp\FilamentorApp\Livewire - THEN the architecture test suite MUST fail
Requirement: CI pipeline blocks merge on five jobs
The system SHALL run a CI pipeline with blocking jobs named static, unit, feature, browser, and container as defined in SPEC §14.1.
Scenario: Static analysis fails on pull request
- WHEN a pull request introduces a Pint, PHPStan/Larastan, or Composer audit failure
- THEN the
staticjob MUST fail and block merge
Scenario: Feature tests use PostgreSQL
- WHEN the
featureCI job runs integration tests - THEN the job MUST use PostgreSQL and MUST NOT substitute SQLite
Requirement: Browser tests run against FrankenPHP-served application
The system SHALL execute browser tests using Pest Browser/Playwright against an application served by FrankenPHP in CI.
Scenario: Browser job validates served application
- WHEN the
browserCI job runs - THEN tests execute against the built application artifact or equivalent production-like image