build-the-gate-before-the-content
Uma checagem acrescentada depois daquilo que ela guarda é uma checagem que alguém desliga para entregar. Feche-a enquanto não há nada para bloquear.
Conferida por quem revisou e leu o cartão, não reivindicada pelo próprio arquivo. Um cartão que o agente destila durante uma execução que consumiu conteúdo não confiável nasce contaminado e fica retido para revisão antes de alguma vez ser recuperado.
Quando ele vem à mente
- planejando uma migração
- começando uma superfície nova
- a gente adiciona o lint depois
- definindo a ordem do trabalho
Evite e Verifique são onde costuma estar o valor. Faça é a seção que todo mundo escreve.
O corpo do cartão acima é uma tradução. O original em inglês é o que a CLI importa, o que o agente lê em execução e o que o hash abaixo atesta.
Gatilho
Você está prestes a construir algo que vai precisar de uma regra aplicada em todo o seu alcance — uma restrição de estilo, uma checagem de atualidade, um schema, um validador de links, um orçamento. A ordem natural é construir a coisa e adicionar a checagem só depois que houver algo para checar.
Não se aplica a uma checagem que você está adicionando a um código que já existe; esse é um trabalho diferente e mais difícil, e a resposta ali é uma catraca (ratchet), não um muro.
Faça
- Adicione a checagem no primeiro commit, antes de existir qualquer conteúdo para ela falhar em cima. Ela passa trivialmente, e esse é o ponto: nasce verde.
- Dê a ela uma mensagem de falha que diga o que rodar. Um gate cuja saída é
assert Falseé apagado pela próxima pessoa que esbarrar nele às 2 da manhã. - Escreva a checagem para que ela falhe na primeira violação, não na centésima. Catracas são para código legado; projeto novo (greenfield) começa do zero.
- Quando a checagem disparar, conserte o conteúdo. Toda vez que você alterar a checagem em vez disso, anote na mensagem do commit qual caso forçou a mudança.
Evite
"Vamos ligar isso quando as páginas estiverem escritas." Nessa hora a checagem já tem um backlog,
ligá-la significa um dia de correções sem relação com a tarefa, e o caminho mais barato é uma lista
de skip que nunca encolhe.
Evite também afrouxar um gate no mesmo commit da feature que o disparou. O afrouxamento fica invisível num diff grande, e é exatamente o momento em que um gate deixa de ser um gate — por isso ele pertence ao seu próprio commit, com sua própria explicação.
Verifique
Introduza uma violação de propósito e confirme que o build fica vermelho — depois remova-a. Faça isso no dia em que você escrever o gate, não depois.
Um gate que ninguém nunca viu falhar não é um gate; é um arquivo que afirma ser um.
Risco
Um gate escrito antes do conteúdo codifica uma suposição sobre um conteúdo que ainda não existe, e algumas dessas suposições acabam erradas. Espere ter que estreitá-lo uma ou duas vezes no início.
Esse estreitamento é o momento perigoso. Cada um enfraquece a regra, e uma regra estreitada três vezes sem que ninguém perceba é uma regra que não cobre mais o caso para o qual foi escrita. Prenda (pin) cada estreitamento ao exemplo de falha que o causou.
Como usar
O cartão é dado. Clone o repositório e importe pelo caminho — o que chega pela rede é tratado como contaminado e fica retido para aprovação, que é o comportamento desejável e a razão de não haver um instalador de uma linha aqui.
git clone https://github.com/brcampidelli/chimera-agent.gitchimera skills-import chimera-agent/skills/build-the-gate-before-the-content/SKILL.mdIntegridade
SHA-256 do arquivo como publicado. Quem importa pode conferir que o que recebeu é o que esta página mostrou.
58c3de3bf7323fb3be38d084394e45ff97e408c20c45db31749cde2b8a13fc81