ADR 0263 — O projeto do usuário trabalha em trunk, e a pasta acompanha a main
- Status: aceito
- Data: 2026-11-06
- Tema:
git - Referencia: revisa, para o repositório do PROJETO do usuário, a escada do ADR 0030, que o bootstrap commitava no repo dele, e o ramo de trabalho do ADR 0056. Estende o ADR 0141 (a pasta montada por identidade) e cita o ADR 0044 (repo adotado). O desenvolvimento do próprio Brabo segue
dev → main(ADR 0235), sem mudança. Decisão do dono de 06/11/2026 (AT-617).
Contexto
O Brabo criava dev e qa no repositório do projeto e mergeava toda tarefa na dev. Nada promovia a dev para a main, e a pasta do projeto no computador do usuário ficava parada no commit da infra. No TP-01 de 06/11 ela estava 21 commits atrás da dev. O README e o app rodavam código velho, e testar o entregável exigia tirar o código de dentro do container.
Decisão
-
Trunk no projeto do usuário. A tarefa nasce da
maine volta para amain. O bootstrap cria e protege só amain, e a política commitada no repo do usuário descreve trunk. A branch de trabalho é amainfixa: adefault_branchde repo adotado fica para depois. -
A pasta acompanha a
main. Depois de cada merge, a api gravaproject.trunk_merged { projectId, sessionId, mergedSha }no outbox, e o engine faz fast-forward da pasta (modoscontainer,mountederunner). A pasta não é tocada, e o motivo fica gravado na linha do tempo, quando:- a branch é outra;
- a árvore rastreada está suja;
- a branch divergiu;
- um arquivo não rastreado seria sobrescrito.
No runner desligado, o avanço é reaplicado quando ele reconecta.
-
Projetos antigos, que têm
devà frente damain, recebem o claim recusado com motivo nomeado. O dono roda um script de migração que faz fast-forward damainaté adevno bare do projeto. O script nunca apaga adev. -
A proteção de
deveqacontinua na lista de branches protegidas (RN-1017/1019), por causa dos projetos antigos.
Consequências
- O que o usuário vê na pasta é sempre o último merge. O app reinicia depois do avanço (ADR 0264).
- Sem a
dev, o projeto deixa de ter um degrau de integração antes damain. Os gates de cada PR passam a ser a única barreira. - O
originda pasta continua apontando para o bare dentro do Brabo, e ogit pullmanual na pasta segue sem funcionar.
Alternativas consideradas
- Avançar a pasta até a
dev, mantendo a escada. Recusada pelo dono: amaindeve estar sempre atualizada depois de cada agente. - Só dizer onde está o código atual. Recusada: quem segue o README sem ler o aviso roda código velho.
- Trunk também nos repos do Brabo. Recusada: a decisão vale só para o projeto do usuário.