Files
amare/openspec/changes/archive/2026-07-29-setup-foundation/specs/quality-gates/spec.md
manoel freitas 7a858b52af feat: implement CMS for content management (WEB-02/03/04/06)
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>
2026-07-29 06:18:42 -03:00

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\Domain imports from App\Filament or App\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 static job MUST fail and block merge

Scenario: Feature tests use PostgreSQL

  • WHEN the feature CI 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 browser CI job runs
  • THEN tests execute against the built application artifact or equivalent production-like image