Files
Manoel Freitas cf1589c916 feat: recreate public frontend with Heritage Editorial identity (#5)
* feat: recreate public frontend with Heritage Editorial identity

Replace placeholder visual system with EB Garamond/olive tokens, brand assets, editorial home narrative, São Paulo settings, real testimonials, and regenerated visual baselines.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs: archive recreate-public-frontend and sync Heritage Editorial specs

Merge delta requirements into main OpenSpec capabilities and move the completed change into the dated archive.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 23:39:00 -03:00

2.5 KiB

MODIFIED Requirements

Requirement: Testimonials are managed with publication control

The system SHALL allow admins to manage testimonials (SPEC WEB-04) with quote text (including multi-paragraph content), author name, optional context (event type and/or date), optional photo with alt text, sort order, featured flag, and published_at. Public rendering MUST preserve paragraph breaks from the stored quote. Testimonials sourced from real clients MUST NOT be published to production without authorization; development seeds MAY include the authorized-pending real quotes marked for review.

Scenario: Unpublished testimonial is excluded

  • WHEN a testimonial has published_at null
  • THEN the published() scope MUST exclude it

Scenario: Published testimonial is queryable

  • WHEN an admin sets published_at with required quote and author name
  • THEN the testimonial MUST be included in the published() scope

Scenario: Assistant cannot manage testimonials

  • WHEN an assistant attempts to access the testimonials Resource
  • THEN access MUST be denied with HTTP 403
  • WHEN content is queried with featured filter
  • THEN records with is_featured true MUST be retrievable independently of sort order

Scenario: Multi-paragraph quotes render as paragraphs

  • GIVEN a published testimonial whose quote contains blank-line separated paragraphs
  • WHEN the home testimonials section is rendered
  • THEN each paragraph MUST appear as distinct block text rather than a single collapsed line

ADDED Requirements

Requirement: Real wedding testimonials are seeded from authorized source copy

Content and visual seeders SHALL replace fictional testimonials with the five real wedding testimonials from depoimentos.md, preserving author couple names, quote wording, and date/context. Until final publication authorization is confirmed, production deployments MUST keep those records unpublished or gated by explicit admin publish action.

Scenario: Seed loads the five real couples

  • WHEN the content seeder runs
  • THEN testimonials for Jeniffer e Maick, Quesia e Jhonata, Milena e Weslley, Raquel e Pedro, and Victoria e Pedro MUST exist with their source quotes and marriage context/dates

Scenario: Fictional demo quotes are removed

  • WHEN the content seeder completes
  • THEN previously invented placeholder testimonial authors MUST NOT remain as the published demo set