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>
This commit is contained in:
2026-08-01 23:38:14 -03:00
parent 9c43ad1d65
commit 2a5c55d90f
19 changed files with 161 additions and 20 deletions

View File

@@ -6,7 +6,7 @@ Define the typed site-wide settings singleton and its administration rules.
## Requirements
### Requirement: Site settings singleton is manageable by admin only
The system SHALL persist site-wide settings in a `site_settings` table as a typed singleton (SPEC WEB-06, §8.2). Fields MUST include brand name, hero copy (eyebrow, title, subtitle, CTA label), about summary, contact email/phone/city, social links (jsonb), default meta title/description, default OG image path and alt text, and optional analytics fields disabled by default.
The system SHALL persist site-wide settings in a `site_settings` table as a typed singleton (SPEC WEB-06, §8.2). Fields MUST include brand name, optional logo path and logo alt text, hero copy (eyebrow, title, subtitle, primary CTA label, optional secondary CTA label, optional hero note), manifesto copy (title, lead, body), method steps (structured typed data for four editorial steps), principles (structured typed list), about summary, contact email/phone/city, social links (jsonb), default meta title/description, default OG image path and alt text, and optional analytics fields disabled by default.
#### Scenario: Admin updates site settings
@@ -25,8 +25,31 @@ The system SHALL persist site-wide settings in a `site_settings` table as a type
- **THEN** validation MUST fail with a pt-BR error message
- **AND** alt text MUST remain optional when no default OG image is present
#### Scenario: Logo upload requires alt text
- **WHEN** an admin uploads a brand logo without alt text
- **THEN** validation MUST fail with a pt-BR error message
- **AND** alt text MUST remain optional when no logo is uploaded
#### Scenario: Singleton avoids generic key-value store
- **WHEN** site settings are stored
- **THEN** the system MUST use typed columns on `site_settings`
- **AND** MUST NOT introduce a generic key/value configuration table
#### Scenario: Editorial defaults remain available when optional fields are empty
- **GIVEN** manifesto, method steps or principles fields are empty
- **WHEN** the home is rendered
- **THEN** the page MUST still render those sections using safe editorial defaults
- **AND** MUST NOT error
### Requirement: Public geography defaults to São Paulo
Demo and visual seed content for site settings SHALL present the Amare operating city as São Paulo (capital), matching `PRODUCT.md`, instead of unrelated cities.
#### Scenario: Seeded settings use São Paulo
- **WHEN** content seeders populate `site_settings`
- **THEN** the city field MUST be São Paulo (or equivalent capital wording)
- **AND** MUST NOT present Fortaleza as the operating city