guardrails
guardrails é o bundle que faz suas convenções valerem não importa quem — ou o
quê — está escrevendo o código. Ele empilha enforcement determinístico em cada
ponto por onde uma mudança passa, pra que um assistente de código (Claude,
Copilot) não possa derivar silenciosamente em formatação, lint, mensagens de
commit ou suas diretrizes.
O que resolve
Assistentes de código são rápidos e quase sempre certos, mas derivam: um formatter
pulado aqui, uma mensagem de commit que ignora a convenção ali, uma regra de lint
violada em silêncio. Qualquer checkpoint isolado pode ser contornado — um hook que
só dispara numa ferramenta, um pre-commit que alguém roda com --no-verify.
Deriva que não é pega deterministicamente é pega no review, ou não é pega. Este
bundle fecha as brechas aplicando os mesmos padrões em mais de um lugar.
Como resolve
É defesa em profundidade — as mesmas convenções aplicadas em camadas sucessivas:
- Nível do loop — os hooks default do Octopus (auto-format, typecheck, bloquear
--no-verify, …) disparam durante o loop de edição do assistente. Este bundle assumehooks: truena raiz do manifesto; osetup.shavisa seguardrailsfor selecionado sem isso. - Nível do git —
enforce-precommitliga os padrões ao hook de pre-commit, pra que rodem em todo commit independente de qual ferramenta o autorou. - Nível do editor —
enforce-ideescreve configs de IDE pra que o editor formate e sinalize enquanto você digita. - Nível do CI — definir
qualityWorkflow: trueno.octopus.ymlmaterializa o workflow de quality no CI, fechando a superfície pré-merge.
Uma mudança tem que passar a mesma régua no loop, no commit, no editor e no CI — então não há um ponto único pra escapar.
O que inclui
enforce-precommit— padrões aplicados na camada do git.enforce-ide— padrões aplicados na camada do editor.
Quando habilitar
Quando seu time usa assistentes de código e quer garantias determinísticas — não esperança — de que conformidade de formatter, linter, mensagem de commit e diretrizes se mantém em toda mudança, não importa como foi feita.