Funcionalidade init - BrunodosSantosVaz/big-bang GitHub Wiki
Fundação inicial
Funcionalidade BB-F-015 · requisito RF-BB-015 · versão documentada 3.0.0 · código 87ff729053d3bcb820d4246be971af7f028d5867.
Finalidade
Preparar F0 com identidade, modo padrão ou Flash, configuração e arquivos comunitários sem destruir conteúdo 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
Validar opções e ambiente Python; para público conferir Wiki inicializada antes de mover arquivos; gerar configuração e README correspondente à visibilidade. Um sistema nasce copiando o template do framework: o bb init retira do AGENTS.md exatamente o trecho marcado entre <!-- bigbang:framework:inicio --> e <!-- bigbang:framework:fim --> (instruções exclusivas do próprio framework, como o modo e as prioridades dele) e preserva todo o restante da seção de projeto. O plano mostrado em --simular lista essa etapa. Desde a v3, o sistema nasce no fluxo agrupador (--fluxo grouping, padrão): bigbang.toml em inglês (ADR-0024), quadro único (board.model = "single", número preenchido em F4), labels v3, workflow.model = "grouping" e a label type:foundation na issue de F0. --modo aceita normal (o antigo padrao), flash e autonomous; o autonomous só existe no fluxo v3. O bb init remove também .bigbang-framework.toml e .bigbang-producao.json, arquivos só do framework (o segundo é o contrato de produção do framework, que isentaria o sistema de provar o checklist). --fluxo epic-branch mantém o fluxo anterior, com o bigbang.toml em português e os três painéis.
Validações
Não existe código do sistema antes de F2; a nova matriz pública começa incompleta e deve ser preenchida nas etapas seguintes. Sem os marcadores do framework, a seção de projeto do AGENTS.md fica intacta, mesmo quando cita o repositório de origem. O teste ponta a ponta do lançador (test_launcher.py) confere que nenhum arquivo, workflow ou instrução exclusiva do framework sobra num sistema recém-fundado. set_config_value grava uma chave no idioma do arquivo existente, usando os nomes legados como referência.
Alternativas e erros
Repositório incorreto, Wiki ausente ou pré-condição inválida interrompe a inicialização preservando os documentos existentes.
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: Preparar F0 com identidade, modo padrão ou Flash, configuração e arquivos comunitários sem destruir conteúdo do projeto. O retorno e os arquivos afetados são conferidos pelos cenários rastreados abaixo; falha impede considerar a operação concluída.
O bb init também remove o autonomy.toml herdado do framework (junto com .bigbang-framework.toml e .bigbang-producao.json): o contrato de autonomia do Big Bang jamais delega aprovações a um sistema novo, que escreve o próprio contrato quando escolher o modo autonomous.
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.
init.py
| Símbolo | Linha |
|---|---|
hook_python_problem |
36 |
slugify |
56 |
set_value |
61 |
set_config_value |
83 |
_repository_from_git |
91 |
resolve_options |
100 |
build_config_text |
121 |
grouping_text |
139 |
plan_steps |
159 |
run |
180 |
_drop_framework_project_section |
232 |
_license_text |
244 |
_github_steps |
254 |
keep_comment_column |
69 |
Cenários e rastreabilidade
.bigbang/tests/test_bb_init.py:test_privado.bigbang/tests/test_bb_init.py:test_retira_so_o_trecho_exclusivo_do_framework.bigbang/tests/test_bb_init.py:test_simulacao_mostra_a_retirada_do_trecho_do_framework.bigbang/tests/test_bb_init.py:test_sem_marcador_a_secao_do_projeto_fica_intacta.bigbang/tests/test_bb_init.py:test_publico_cria_licenca_do_sistema.bigbang/tests/test_bb_init.py:test_publico_sem_licenca.bigbang/tests/test_bb_init.py:test_nao_roda_duas_vezes.bigbang/tests/test_bb_init.py:test_issue_de_f0_existente_nao_duplica.bigbang/tests/test_bb_init.py:test_falha_no_github_nao_altera_arquivos.bigbang/tests/test_bb_init.py:test_simular_nao_faz_nada.bigbang/tests/test_bb_init.py:test_sem_github.bigbang/tests/test_bb_init.py:test_slug.bigbang/tests/test_bb_init.py:test_set_value_mantem_comentario_e_secao.bigbang/tests/test_bb_init.py:test_set_value_mantem_a_coluna_do_comentario.bigbang/tests/test_bb_init.py:test_sem_python.bigbang/tests/test_bb_init.py:test_python_antigo.bigbang/tests/test_bb_init.py:test_python_certo.bigbang/tests/test_launcher.py:test_template_is_not_founded.bigbang/tests/test_launcher.py:test_template_ships_only_guarded_framework_workflows.bigbang/tests/test_launcher.py:test_guard_check_rejects_unguarded_jobs.bigbang/tests/test_launcher.py:test_every_root_entry_has_a_foundation_decision.bigbang/tests/test_launcher.py:test_private_default_mode.bigbang/tests/test_launcher.py:test_private_flash_mode.bigbang/tests/test_launcher.py:test_autonomous_mode_needs_the_v3_workflow.bigbang/tests/test_launcher.py:test_previous_workflow_stays_available.bigbang/tests/test_launcher.py:test_public_gets_its_own_manifest.bigbang/tests/test_launcher.py:test_compiled_profile_after_f2
Requisitos · Matriz de rastreabilidade · Referência CLI