Gleam.br Wiki

ADR-0025: Ingestão de Documentação Técnica (`./docs/`) com Filtros de Exclusão | Wiki

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

ADR-0025: Ingestão de Documentação Técnica (./docs/) com Filtros de Exclusão

Este documento especifica a decisão de arquitetura para a expansão do motor de sincronização de documentação estática em Gleam puro (sync_wiki.gleam), incluindo a varredura e conversão de todos os documentos Markdown em ./docs/**/*.md (ADRs, EARS e especificações técnicas) para o formato .djot em apps/gbr_ssg/content/wiki/docs/, com suporte a uma lista de exclusão (blacklist).

1. Contexto e Motivação

Atualmente, o motor sync_wiki.gleam varre os README.md dos pacotes (./packages/) e aplicações (./apps/). No entanto, uma parcela fundamental do nosso conhecimento de engenharia reside sob o diretório ./docs/ (especialmente em ./docs/00-ADR-EARS/).

Para centralizar e disponibilizar 100% da documentação formal na Wiki navegável do gerador estático gbr_ssg, precisamos estender o sincronizador para ingerir a árvore ./docs/.

Ao mesmo tempo, é essencial ter um mecanismo de filtragem (lista de exclusão) para ignorar rascunhos em ./docs/99-DRAFT/, arquivos temporários ou de brainstorm bruto em ./docs/_MISC/00-Brainstorm/, arquivos compactados (*.zip) ou documentos redundantes que não devem ser publicados publicamente/privadamente.


2. Decisão Arquitetural

  1. **Extensão do Módulo de Sincronização Gleam (sync_wiki.gleam):** - Adição de varredura recursiva para o diretório ./docs/ (e fallback ../../docs). - Implementação de regras configuráveis de exclusão (blacklist patterns): - Pastas a ignorar: _MISC/00-Brainstorm, 99-DRAFT, .github. - Arquivos a ignorar: README.md na raiz de ./docs/ (quando redundante), arquivos .zip ou rascunhos. - Preservação da hierarquia de subpastas na Wiki (ex: ./docs/00-ADR-EARS/gbr_ssg/01-visao.md $\rightarrow$ content/wiki/docs/00-ADR-EARS/gbr_ssg/01-visao.djot).

  2. *Formatação Frontmatter TOML Standardizada:* Cada documento extraído de ./docs/ receberá o frontmatter TOML: toml +++ title = "[Título do Documento] | Wiki Docs" description = "Especificação técnica e registro de decisão da engenharia." category = "Documentação" order = 1 layout = "wiki" +++

  3. *Sanitizador e Resolução de Links Internos (Questionário Crítico):* Para evitar links quebrados entre documentos convertidos (ex: referências relativas a outros arquivos .md), o conversor ajustará extensões .md para .html nos links internos e resolverá caminhos sob a rota /wiki/docs/.


3. Requisitos EARS

*Requisitos Ubíquos (Ubiquitous Requirements)* - *UBQ-01 (Varredura de Documentação Central):* O motor de sincronização DEVE ler recursivamente todos os arquivos .md sob ./docs/ e convertê-los para a estrutura .djot em content/wiki/docs/. - *UBQ-02 (Filtros de Exclusão/Blacklist):* O motor DEVE aplicar rigorosamente as regras de exclusão configuradas, desconsiderando pastas e padrões de arquivos marcados como ignorados.

*Requisitos de Resposta a Eventos (Event-Driven Requirements)* - *EVT-01 (Execução Pré-Build Transparente):* QUANDO gleam run for executado no gbr_ssg, O sistema DEVE sincronizar ./docs/, ./apps/ e ./packages/ antes de compilar os arquivos HTML em ./dist/.