Arquitetura - BrunodosSantosVaz/big-bang GitHub Wiki
Arquitetura e dados
Componentes
flowchart LR
Pessoa[Pessoa e IA autorizada] --> CLI[CLI bb]
TOML[bigbang.toml do projeto] --> CLI
CLI --> Regras[Regras puras Python]
CLI --> Gerador[Gerador por composição]
Gerador --> Instrucoes[Skills, agentes e hooks]
Gerador --> Actions[GitHub Actions por perfil e alvo]
Actions --> Gates[Testes, revisão, segurança e documentação]
Gates --> Artefato[Binário ou imagem imutável]
Artefato --> Destino[Destino de entrega instalado]
CLI --> GitHub[Issues, PRs, Projects e Discussions]
CLI --> Wiki[Wiki Git por SHA para públicos]
A camada .bigbang é versionada pelo framework; as saídas geradas recebem aviso e são comparadas às fontes por bb verificar. A camada do projeto contém configuração, código, contratos e instruções próprias; o atualizador a preserva. Templates não contêm lógica condicional: composição de camadas e campos computados seleciona o comportamento.
Persistência e concorrência
Sem banco próprio: configuração TOML, fontes Git, metadados de sessões e registros GitHub. Posse é otimista, confirmada por sessão. Wiki tem histórico separado: manifesto registra base, proposta e SHA esperado, e publicação usa comparação do HEAD seguido de push fast-forward normal. Uma nova revisão inicia pela publicação anterior confirmada, renovando a base; uma proposta pendente mantém a base original. Uma mudança concorrente exige nova proposta revisada; não se força o Git remoto.
Decisões e recuperação
ADRs registram alternativas, justificativas e consequências. Atualização oficial confere pacote e atestação. Rollback de sistema promove digest/bytes registrados, sem inventar migração inversa; recuperação de dados depende do backup definido pelo próprio projeto.