Funcionalidade hooks - BrunodosSantosVaz/big-bang GitHub Wiki
Proteção local das IAs
Funcionalidade BB-F-045 · requisito RF-BB-045 · versão documentada 2.0.1 · código 7d7bd0cff62d5a12d897999b613b55a7cda21d38.
Finalidade
Bloquear comandos e edições proibidos pelo contrato da sessão antes que alterem trabalho ou arquivos sensíveis.
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
Ler o evento da ferramenta, localizar a raiz e configuração e avaliar comandos, arquivos e áreas geradas; responder com autorização ou diagnóstico de bloqueio.
Validações
Instruções externas são dados; teste de aceite e arquivo sensível seguem decisão do dono; hooks complementam os controles de CI. As labels de decisão do dono são bloqueadas nos dois idiomas (v2 e v3), lidas da mesma tabela de nomes do framework.
Alternativas e erros
Evento inválido ou operação proibida produz bloqueio explícito; hook não garante a identidade da conta compartilhada nem substitui a revisão.
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: Bloquear comandos e edições proibidos pelo contrato da sessão antes que alterem trabalho ou arquivos sensíveis. 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.
_common.py
| Símbolo | Linha |
|---|---|
project_root |
8 |
run |
19 |
proteger_arquivos.py
| Símbolo | Linha |
|---|---|
guarded_path |
18 |
changed_block |
34 |
inspect |
52 |
proteger_comandos.py
| Símbolo | Linha |
|---|---|
branch |
18 |
git_check |
24 |
gh_check |
90 |
inspect |
130 |
settings.json
Cenários e rastreabilidade
.bigbang/tests/test_hooks.py:test_nega_framework_aceite_e_gerados_inclusive_arquivo_novo.bigbang/tests/test_hooks.py:test_documentos_de_decisao_pedem_confirmacao.bigbang/tests/test_hooks.py:test_codigo_e_skill_propria_seguem_permissoes_normais.bigbang/tests/test_hooks.py:test_alias_e_caminho_com_separadores_windows_nao_contornam.bigbang/tests/test_hooks.py:test_aviso_de_gerado_e_protegido_sem_prefixo.bigbang/tests/test_hooks.py:test_edicao_na_secao_do_projeto_preserva_bloco_agents.bigbang/tests/test_hooks.py:test_stack_nega_bloco_mas_pede_confirmacao_fora_dele.bigbang/tests/test_hooks.py:test_alias_de_documento_preserva_classificacao_lexical.bigbang/tests/test_hooks.py:test_falha_de_entrada_bloqueia_sem_vazar_evento.bigbang/tests/test_hooks.py:test_push_direto_e_force_sao_negados.bigbang/tests/test_hooks.py:test_branch_propria_e_leituras_nao_sao_aprovadas_automaticamente.bigbang/tests/test_hooks.py:test_reset_e_tags_negados.bigbang/tests/test_hooks.py:test_labels_de_decisao_negadas_em_cli_e_api.bigbang/tests/test_hooks.py:test_labels_de_decisao_em_ingles_tambem_negadas.bigbang/tests/test_hooks.py:test_composto_nao_e_isentado_por_bb.bigbang/tests/test_hooks.py:test_formas_dinamicas_pedem_conferencia.bigbang/tests/test_hooks.py:test_opcoes_globais_do_gh_nao_isentam_decisoes.bigbang/tests/test_hooks.py:test_pontuacao_agrupada_nao_esconde_comando_seguinte.bigbang/tests/test_hooks.py:test_powershell_tambem_aciona_os_bloqueios.bigbang/tests/test_hooks.py:test_settings_gerado_registra_scripts_executaveis_e_verificacao
Requisitos · Matriz de rastreabilidade · Referência CLI