Files
amare/openspec/specs/site-settings/spec.md
manoel freitas 2a5c55d90f 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>
2026-08-01 23:38:14 -03:00

2.6 KiB

site-settings Specification

Purpose

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, 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

  • WHEN an admin saves the site settings form in Filament
  • THEN the singleton record is updated
  • AND labels and validation messages are in pt-BR

Scenario: Assistant cannot access site settings

  • WHEN an assistant navigates to site settings in Filament
  • THEN access MUST be denied with HTTP 403

Scenario: Default OG image requires alt text

  • WHEN an admin uploads a default OG image without alt text
  • 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