Funcionalidade modos autonomia - BrunodosSantosVaz/big-bang GitHub Wiki

Modos normal, flash e autonomous

Funcionalidade BB-F-054 · requisito RF-BB-054 · versão documentada 2.0.1 · código 94155836a981e9912a59f2c826afcff7baa4f073.

Finalidade

Fazer o modo do projeto (ADR-0025) valer de verdade nos portões da v3: no normal o dono decide; no Flash a IA aprova o trabalho comum e chama o dono para o crítico; no autonomous a IA conduz de ponta a ponta, mas só dentro do contrato autonomy.toml.

Atores

Dono (escreve e renova o contrato, decide o que fica fora dele), IAs com posse confirmada, o controlador e os botões da esteira v3.

Pré-condições

project.mode = autonomous e um autonomy.toml versionado (version, targets, risk, gates, flags, wip, attempts, max_cost_usd, publish_window, expires) revisado pelo dono; repositório com ruleset exigindo o check gate na main e na develop e ambiente production restrito à main.

Fluxo principal

Todo comando bb da v3 carrega o autonomy.toml do checkout que o roda (na CI, a branch de destino); bb move calcula o portão e o risco e pergunta ao contrato se o agente pode aprovar; dentro do contrato o agente aprova e o recibo grava approval com portão, risco, modo e agent:; a publicação confere alvo, portão publish e janela; bb autonomy check confere contrato e controles antes de ligar o modo.

Validações

Contrato ausente, ilegível, inválido (inclusive com tipos errados) ou vencido bloqueia todos os portões, sempre com mensagem; risco ou portão fora do contrato bloqueia o agente; attempts e wip de um contrato válido substituem os limites padrão, e o wip limita os épicos em andamento (In Progress e QA) na entrada em In Progress, vinda de Selected ou de Rejected; publicação fora da janela ou para alvo fora de targets é recusada; um agente nunca assina como o dono.

Alternativas e erros

Fora do contrato, só a decisão registrada do dono (bb decision) libera o portão, e o recibo grava owner:; repositório privado numa conta pessoal Free, branch sem o gate obrigatório ou production aberta a outras branches fazem bb autonomy check e bb board create recusarem o modo; também recusam um ruleset com bypass_actors (ou com a lista que o token não consegue ver), repositório privado de organização sem plano pago confirmado, uma política de ambiente do tipo tag e o repositório privado cujo plano não pôde ser confirmado com o token do dono.

Permissões

Só o dono altera autonomy.toml e bigbang.toml (regra de ferro 9); bb review approve recusa o PR que muda autonomy.toml em qualquer modo, mesmo com owner:ai-review, e os demais arquivos do dono sem owner:ai-review no próprio PR (herdado da issue não vale), e bb merge exige a decisão registrada do dono (bb decision pr:approved) quando há review:human: todo PR que muda autonomy.toml, bigbang.toml, PRODUTO.md, STACK.md, DESIGN.md ou flags.toml recebe review:human em qualquer modo (owner:ai-review vale para os demais, nunca para autonomy.toml); flags.toml só é delegado quando o contrato válido diz flags = "agent"; a regra de ferro de produção muda somente no modo autonomous e somente dentro do contrato; um PR nunca amplia o contrato que o julga.

Resultados

Autonomia auditável: cada aprovação aponta para quem aprovou, com que risco e em que modo, e nada sai do contrato sem o dono.

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.

autonomy.py

Implementação revisada.

Símbolo Linha
attach 14
contract_of 31
problems 35
usable 47
publish_problems 52
_requires_gate 69
bootstrap_problems 79

Cenários e rastreabilidade

Requisitos · Matriz de rastreabilidade · Referência CLI

Fontes rastreadas

⚠️ **GitHub.com Fallback** ⚠️