Gleam.br Wiki

EARS: Requisitos do Motor Estático de Geração de Sites (gbr_ssg) | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

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.