Pular para conteúdo

Documentação — The Band

The Band é uma plataforma de integração semântica de dados de Engenharia de Software. Coleta dados das ferramentas usadas ao longo do desenvolvimento, harmoniza esses dados contra ontologias de referência, preserva proveniência e responde necessidades de informação com dados rastreáveis e explicáveis.

Base científica: tese de doutorado de Paulo Sérgio dos Santos Júnior (UFES, 2023), From Continuous Software Engineering Reference Ontologies to the Integration of Data for Data-Driven Software Development.


Por onde começar

Se você quer… Vá para
Entender o que o sistema é e como está organizado Arquitetura
Entender as tabelas e os schemas, e por que têm essa forma Modelo de dados
Colocar a aplicação em execução, e configurar o ambiente Deployment
Entender o modelo conceitual Rede de ontologias
Achar um conceito específico Índice de conceitos
Integrar com a API pública A API pública, para quem vai integrar
Saber como dados externos viram conceitos Mapeamentos semânticos
Entender de onde vem um número Necessidades de informação e medidas
Saber por que uma decisão foi tomada ADRs
Ver o que ainda não foi decidido RFCs
Entender as extensões ao método de transformação Pesquisa
Saber o que construir e em que ordem Backlog
Começar pela integração com GitHub Backlog GitHub → SRO
Entender como o CI coletado vira conceito Verificação contínua
Ler o que os sprints ensinaram Lições aprendidas
Contribuir com código AGENTS.md na raiz
Abrir ou fechar um sprint skill sprint-backlog

Mapa da documentação

docs/
├── architecture/     visão da arquitetura, fronteiras internas e modelo de dados
├── ontology/         modelo conceitual — GERADO da base de conhecimento
├── api/              a API pública, para quem vai integrar
├── integrations/     fontes externas e mapeamentos — GERADO
├── metrics/          necessidades de informação e medidas — GERADO
├── processes/        processo de trabalho por feature
├── sprints/          backlogs, reviews e o registro acumulado de lições
├── backlog/          o que construir e em que ordem
├── rfc/              propostas abertas a comentário
├── research/         extensões ao método, com vistas a publicação
└── adr/              decisões arquiteturais registradas

Páginas geradas

docs/ontology/, docs/integrations/mappings.md e docs/metrics/README.md são derivados de priv/knowledge_base/ e não devem ser editados à mão — a edição faria a documentação divergir do modelo que o sistema realmente carrega.

Para regenerá-las depois de alterar a base:

python3 scripts/validate_knowledge_base.py   # a base precisa estar válida antes
python3 scripts/generate_docs.py

As Mix tasks equivalentes já existem, e são o que os gates chamam — mix knowledge.validate e mix knowledge.graph. Os scripts continuam servindo para uso pontual fora do projeto Elixir.

Regenerar não é opcional. Alterar a base sem regenerar deixa a documentação afirmando um modelo que o sistema não carrega mais — e foi o que aconteceu por nove features: a página dizia 12 ontologias quando a base já tinha 13.


Estado atual

Área Estado
Base de conhecimento (UFO + SEON + Continuum) 13 ontologias, 230 conceitos, 167 relações, 73 perguntas de competência
Mapeamentos semânticos GitHub: 22 mapeamentos (4 derivados por tipo de issue), status proposed
Necessidades de informação e medidas 6 e 5
Aplicação Phoenix em produção interna — multitenant, 23 rotas LiveView, 116 arquivos de teste
Conectores executáveis GitHub, declarativo em GraphQL + YAML

O roadmap completo está em AGENTS.md, seção 19.

Interface

design-system.md — a gramática da evidência, a paleta, as três vozes tipográficas, WCAG 2.0 e mobile-first. Normativo: vale para toda tela nova.


O site desta documentação

Estas páginas são publicadas em https://theband.dev/developers/ pelo workflow docs.yml, a cada push na main que toque em docs/.

Para ver localmente antes de abrir PR:

pip install -r ../requirements-docs.txt
mkdocs serve            # http://127.0.0.1:8000
mkdocs build --strict   # o que a CI roda

--strict transforma link quebrado em falha de build, e não é rigor decorativo: foi ele que encontrou 118 links quebrados que ninguém via — a maioria com um ../ a menos, apontando para docs/specs/ em vez de specs/. Estavam quebrados no GitHub também, e nenhuma revisão os pegou porque link quebrado não dá erro, só devolve 404 para quem clicou.

Duas coisas que não se faz aqui

Nunca rodar mkdocs gh-deploy. A branch gh-pages não é deste site: ela serve a landing page de theband.dev e carrega o CNAME. O gh-deploy apaga a branch inteira, e levaria o domínio junto. A publicação escreve apenas em docs/, com um passo que aborta se o CNAME ou o index.html da raiz desaparecerem.

Não reescrever para URL absoluta os links que apontam para fora de docs/ — specs/, priv/, AGENTS.md. Eles continuam relativos no fonte, e o hook scripts/mkdocs_hooks.py os converte para o GitHub no momento do build. Assim a documentação segue navegável no repositório, offline e sob git grep.