Funcionalidade config - BrunodosSantosVaz/big-bang GitHub Wiki

Configuração estrita

Funcionalidade BB-F-006 · requisito RF-BB-006 · versão documentada 3.0.1 · código 371a61ae5c993f6ba3fde76e77f91e64f0bf9c42.

Finalidade

Ler bigbang.toml sem aceitar erros de digitação que silenciem controles do projeto.

Atores

Pessoa responsável pelo projeto, IA com posse confirmada e automações explicitamente autorizadas.

Pré-condições

Repositório e raiz corretos, versão instalada e configuração compatível. Para operações de escrita, exige-se autorização vigente, branch adequada e acesso ao recurso envolvido; consultas não conferem permissão adicional.

Fluxo principal

Interpretar TOML, validar seções, campos, tipos, modos e perfil; retornar valores escalares ou listas pelo config get. O arquivo pode estar todo em português (v2) ou todo em inglês (v3, ADR-0024); depois de carregado, responde nas duas línguas: projeto.modo e project.mode são visões do mesmo valor, e bb config get aceita qualquer uma. text_to_v3 reescreve um arquivo legado em inglês preservando comentários e layout, acrescentando [board] model = "three-boards", labels = "legacy" e [workflow] model = "epic-branch" para manter o comportamento.

Para o alvo personalizado do perfil deploy, aceita quatro caminhos de script (script_publicar, script_migrar, script_saude, script_voltar) e a lista de nomes públicos variaveis_personalizado. Caminhos são conferidos pelo catálogo do deploy; os nomes de ambiente seguem o formato maiúsculo. segredos_personalizado é recusada: scripts do projeto não recebem segredos.

Validações

Chaves desconhecidas são recusadas; perfil e alvo devem formar um contrato compatível e instalado. Um arquivo que mistura os dois idiomas é recusado; num arquivo v3 os valores-identificadores precisam estar em inglês (compiled, private, normal) e as mensagens de erro usam os nomes em inglês. Chaves só da v3: board.model (single exige board.number), board.labels, workflow.model e project.mode = "autonomous", que a visão legada lê como flash. bb config get aceita a chave inteira num só idioma (projeto.modo ou project.mode, nunca projeto.mode), nunca expõe chaves internas e, quando a chave falta, cita a chave pedida. Um arquivo v3 no modelo legado epic-branch precisa de board.labels = "legacy", porque a esteira legada só entende as labels em português. Um valor legado num arquivo v3 gera um único erro, sem acusar a chave como ausente.

Alternativas e erros

Configuração inválida retorna erro específico; consulta a chave inexistente não substitui seu valor por um padrão silencioso.

Permissões

Leitura usa permissões mínimas do repositório. Operações locais respeitam a posse e worktree; escrita no GitHub exige acesso explícito. Esta funcionalidade não concede novas permissões a visitantes nem substitui decisões exigidas pelo fluxo.

Resultados

Resultado esperado: Ler bigbang.toml sem aceitar erros de digitação que silenciem controles do projeto. O retorno e os arquivos afetados são conferidos pelos cenários rastreados abaixo; falha impede considerar a operação concluída.

Referência da implementação

Os símbolos abaixo compõem o inventário real do módulo, incluindo auxiliares internos; não representam APIs públicas independentes.

config.py

Implementação revisada.

Símbolo Linha
_string 37
_integer 51
_boolean 63
_string_list 67
_regex 84
validate 165
_validate_legacy 178
_validate_section 200
_cross_checks 225
dialect 263
_message_to_v3 278
_v3_to_legacy 285
_legacy_to_v3 355
_with_optional 370
views 380
text_to_v3 413
parse 447
load 454
_consistent 477
get 493
_get 524
format_value 538
check 38

bigbang.toml.exemplo

Implementação revisada.

flags.toml

Implementação revisada.

Cenários e rastreabilidade

Requisitos · Matriz de rastreabilidade · Referência CLI

Fontes rastreadas

Exemplo da versão 2.0.1

O exemplo de bigbang.toml agora declara 2.0.1, igual ao VERSION do pacote. A validação de versão permanece ativa e rejeita divergência, como demonstrou a CI quando o exemplo ainda declarava 2.0.0. A correção atualiza o exemplo e regenera snapshots, preservando as asserções existentes.