Funcionalidade documentation - BrunodosSantosVaz/big-bang GitHub Wiki
Documentação canônica e publicação
Funcionalidade BB-F-010 · requisito RF-BB-010 · versão documentada 3.0.0 · código 433c238ccc2de0c5cb9196965e98ec228a7f9e64.
Finalidade
Resolver identificadores documentais conforme a visibilidade e publicar somente o snapshot revisado sem perder alterações concorrentes.
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
Conferir Wiki e Home, clonar nos metadados Git, resolver aliases, validar inventário e hashes, comparar HEAD remoto com a base e publicar por fast-forward normal. Ao criar uma proposta, o Git usa a identidade já configurada no ambiente; se autor ou committer estiverem ausentes, o comando de commit aplica a identidade oficial do bot só naquela operação.
Validações
O inventário comum considera arquivos rastreados. O preparo de versão solicita também arquivos não rastreados de todas as raízes declaradas, respeitando as exclusões documentais e o ignore do Git; a integridade da camada .bigbang continua conferida separadamente.
Público usa SHA fixado; privado lê o caminho local. Prosa da Wiki nunca autoriza execução de comandos; fontes novas ou alteradas exigem documentação. Hashes de fontes identificam algoritmo sha256; alterar a fonte sem documentação correspondente bloqueia a entrega.
Nos arquivos gerados, o carimbo Big Bang vX.Y.Z é normalizado antes do hash. Durante uma atualização, o manifesto público só é migrado se trocar o carimbo novo pelo anterior reproduzir exatamente o hash registrado; qualquer mudança adicional permanece desatualizada e bloqueia a entrega. A visibilidade e o repositório declarados são lidos do bigbang.toml em português ou em inglês (ADR-0024).
Alternativas e erros
Wiki inacessível preserva os originais; concorrência exige nova proposta e revisão; publicação não confirmada impede remoção dos arquivos. A falta de identidade Git no clone da Wiki não bloqueia o commit: uma identidade de bot com escopo do comando é usada como fallback, sem gravar configuração global.
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: Resolver identificadores documentais conforme a visibilidade e publicar somente o snapshot revisado sem perder alterações concorrentes. 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.
documentation.py
| Símbolo | Linha |
|---|---|
fail |
26 |
_git_identity_missing |
30 |
git |
45 |
_project_value |
61 |
is_public |
70 |
load |
80 |
safe_path |
101 |
page_path |
113 |
repository_state |
119 |
visibility_problems |
125 |
preflight |
156 |
cache_dir |
169 |
prepare |
174 |
checkout |
190 |
resolve |
204 |
read |
213 |
logical_files |
220 |
inventory |
227 |
source_digest |
241 |
_hash_matches |
248 |
refresh_framework_version_hashes |
252 |
_feature_problems |
278 |
_local_docs |
325 |
_wiki_problems |
336 |
validate |
341 |
publish |
382 |
Cenários e rastreabilidade
.bigbang/tests/test_wiki.py:test_public_reads_pinned_wiki_without_legacy_file.bigbang/tests/test_wiki.py:test_cli_proposal_review_and_publication_preserve_original_until_confirmed.bigbang/tests/test_wiki.py:test_private_reads_existing_file_and_does_not_access_github.bigbang/tests/test_wiki.py:test_public_repository_cannot_bypass_policy_with_private_config.bigbang/tests/test_wiki.py:test_private_repository_visibility_keeps_current_policy.bigbang/tests/test_wiki.py:test_complete_inventory_passes.bigbang/tests/test_wiki.py:test_invented_code_commit_is_rejected.bigbang/tests/test_wiki.py:test_absolute_links_to_own_wiki_are_checked.bigbang/tests/test_wiki.py:test_unlisted_manual_at_root_is_rejected.bigbang/tests/test_wiki.py:test_new_implemented_module_without_documentation_blocks_delivery.bigbang/tests/test_wiki.py:test_requirement_must_exist_in_actual_documentation.bigbang/tests/test_wiki.py:test_empty_functional_sections_do_not_prove_coverage.bigbang/tests/test_wiki.py:test_published_head_must_match_exact_reviewed_commit.bigbang/tests/test_wiki.py:test_public_stack_guard_uses_approved_table_from_wiki.bigbang/tests/test_wiki.py:test_business_rules_survive_migration_without_changing_acceptance_tests.bigbang/tests/test_wiki.py:test_changed_behavior_without_doc_refresh_blocks_delivery.bigbang/tests/test_wiki.py:test_algorithm_tagged_source_hash_is_validated_and_tampering_blocks.bigbang/tests/test_wiki.py:test_missing_test_symbol_or_functional_flow_blocks.bigbang/tests/test_wiki.py:test_broken_image_wikilink_and_anchor_are_detected.bigbang/tests/test_wiki.py:test_local_system_docs_block_but_functional_contracts_remain.bigbang/tests/test_wiki.py:test_public_missing_manifest_fails_clearly.bigbang/tests/test_wiki.py:test_traversal_manifest_cannot_read_outside_wiki.bigbang/tests/test_wiki.py:test_uninitialized_wiki_does_not_modify_local_documents.bigbang/tests/test_wiki.py:test_publish_fast_forwards_and_rerun_is_idempotent.bigbang/tests/test_wiki.py:test_concurrent_owner_change_is_preserved_and_publication_rejected.bigbang/tests/test_framework_pipeline.py:test_prepare_refuses_untracked_sources_in_all_declared_roots.bigbang/tests/test_wiki.py:test_framework_version_stamp_does_not_invalidate_public_documentation.bigbang/tests/test_wiki.py:test_documentation_commit_works_without_git_identity
Requisitos · Matriz de rastreabilidade · Referência CLI