EARS: Requisitos do Motor Estático de Geração de Sites (gbr_ssg) | Wiki
EARS: Requisitos do Motor Estático de Geração de Sites (gbr_ssg)
*Requisitos Ubíquos (Ubiquitous Requirements)*
- *UBQ-01:* O gbr_ssg deve ler arquivos Markdown (.md) com codificação UTF-8 localizados no diretório de entrada de conteúdo configurado.
- *UBQ-02:* O gbr_ssg deve gerar páginas HTML estáticas prontas para deploy, em conformidade com as otimizações e convenções do Cloudflare Pages.
- *UBQ-03:* O gbr_ssg deve utilizar layouts e componentes definidos no pacote packages/gbr_ui para a renderização visual das páginas.
- *UBQ-04:* O gbr_ssg deve injetar os metadados do cabeçalho do arquivo Markdown (Frontmatter) diretamente nos templates Lustre.
*Requisitos Orientados a Eventos (Event-Driven Requirements)*
- *EVD-01:* Quando a execução do gerador for iniciada via comando de CLI, o sistema deve varrer o diretório de entrada recursivamente e extrair a lista de arquivos a serem compilados.
- *EVD-02:* Quando um arquivo Markdown for lido, o motor de conversão deve decodificar os metadados do Frontmatter antes de processar o corpo do texto.
- *EVD-03:* Quando a conversão for concluída com sucesso, o sistema deve gravar o arquivo de saída HTML na estrutura de diretórios correspondente da pasta /dist de saída.
*Requisitos Orientados a Estado (State-Driven Requirements)*
- *STD-01:* Enquanto a geração estática estiver em andamento, o sistema deve manter um estado interno listando todos os caminhos gerados e suas respectivas configurações de layout para gerar um sitemap.xml consolidado ao fim do processo.
*Requisitos de Comportamento Indesejado (Unwanted Behavior Requirements)* - *UNW-01:* Se um arquivo Markdown contiver Frontmatter sintaticamente incorreto ou campos obrigatórios ausentes, o motor deve reportar a falha no console com o nome do arquivo afetado e abortar o build daquela página específica para evitar a geração de conteúdo corrompido. - *UNW-02:* Se a pasta de entrada especificada não existir ou estiver inacessível, o sistema deve parar imediatamente e exibir um erro descritivo de I/O no console antes de iniciar a execução da engine de renderização.
*Requisitos de Funcionalidades Opcionais (Optional Feature Requirements)*
- *OPT-01:* Onde configurado no manifesto do projeto, o sistema deve gerar automaticamente um arquivo de feed RSS (feed.xml) a partir dos metadados extraídos dos posts/páginas organizados por ordem cronológica.