Quadro unico - BrunodosSantosVaz/big-bang GitHub Wiki
O Big Bang v3 adota um GitHub Project único por repositório (ADR-0023), substituindo a divisão legada em três painéis. O quadro reflete o ciclo de vida completo do projeto, de Brainstorm a Done, governado por recibos criptográficos e travas atômicas.
O campo de projeção do Project é o Status, composto por 15 estados estritos:
| Categoria | Fluxo de estados |
|---|---|
| Épico |
Brainstorm → Backlog → Refinement → (Prototyping) → Ready → Selected → In Progress → (QA) → Releasing → Done
|
Tarefa (type:task, type:test, type:docs) |
Todo → Coding → In Review → Done
|
| Bug |
Brainstorm → Backlog → Ready → Selected → Coding → In Review → (QA) → Releasing → Done
|
| Terminais de exceção |
Rejected (com motivo reason e estado de retorno return-to) e Cancelled (com motivo) |
Nos épicos, as únicas transições de recuo sem reprovação formal são Ready → Refinement e Selected → Ready.
O quadro único utiliza campos customizados gerenciados pela CLI e pelo controlador:
- Status: projeção do estado atual do cartão (15 opções).
-
Candidate: identificador da versão candidata atual (
vX.Y.Z-rc.N) para cartões em homologação. - Attempts: contador de reprovações consecutivas registrado a partir dos recibos.
-
Blocked: indicador booleano de bloqueio quando o limite de tentativas (
attempts) é atingido. -
Risk: nível de risco calculado (
low,medium,high,critical).
O estado oficial de um cartão não depende de quem arrasta o cartão na interface web. A fonte da verdade são os recibos registrados como comentários na issue:
<!-- bb:receipt {"type": "transition", "from": "Coding", "to": "In Review", "attempt": 1, ...} -->- Cada recibo é assinado e gravado exclusivamente pela conta confiável (
project.owner). - Movimentações manuais não autorizadas na interface do GitHub são revertidas na reconciliação periódica com um comentário explicativo.
- Toda transição com portão registra
approvalno recibo, indicando o portão, a classe de risco, o modo de operação e o aprovador (owner:<login>ouagent:<nome>).
O avanço entre fases estratégicas exige aprovação registrada via label oficial:
| Portão | Transição | Label de decisão |
|---|---|---|
backlog |
Brainstorm → Backlog
|
approved:backlog |
refinement |
Refinement → Prototyping/Ready
|
approved:refinement |
prototype |
Prototyping → Ready
|
approved:prototype |
selection |
Ready → Selected
|
approved:selection |
qa |
QA → Releasing
|
qa:approved (ou qa:rejected) |
publish |
Releasing → Done
|
Aprovação do ambiente production no GitHub Actions |
cancel |
* → Cancelled
|
approved:cancel |
Decisões do dono são registradas na issue por meio de:
bb decision <label> <issue> --quote "<citação exata do dono>"O comando preserva as palavras do dono para auditoria factual. A permissão de delegar aprovações varia de acordo com o modo (Modos).
Para evitar conflito entre agentes e desenvolvedores, o Big Bang utiliza referências Git atômicas (refs/bigbang/locks/issue-N):
-
Tomar posse:
bb claim <issue> <nome>adquire a trava atômica. Se outro agente já possuir a trava, o pedido é recusado e informa quem é o titular. -
Renovar posse:
bb renew <issue>prorroga o prazo de vigência (lease_hours). -
Liberar posse:
bb unclaim <issue>libera a trava, convertendo a ref em uma lápide permanente (tombstone) para histórico. - Sessões vencidas (
stale) não podem concluir trabalho nem renovar sem autorização forçada (--force-claim).
O workflow bb-controller.yml escuta eventos de issues, PRs e branches, aplicando as transições validadas (bb pipeline controller):
-
Push na branch da tarefa: move de
TodoparaCoding. -
Abertura de PR: move de
CodingparaIn Review. -
Merge de PR: move para
Done, fecha a sub-issue e libera a trava atômica. -
Fechamento de PR sem merge: retorna o cartão para
Coding. -
Agendamento periódica: reconcilia posições divergentes no Project e marca
staleem posses vencidas.
Para detalhes de implementação, consulte a Funcionalidade-quadro-unico e Funcionalidade-nucleo-v3.