Um projeto bate numa parede, a explicação parece óbvia, e a vontade é escrever a regra geral na hora. Eu já fiz isso várias vezes. De vez em quando dá certo, porque a lição era mesmo geral desde o começo.

De vez em quando não dá. O que parecia universal era um jeito específico daquele projeto ter sido montado. A regra sai do lugar onde nasceu, vai para todos os outros e leva junto o vício de um caso só.

O problema não é a lição estar errada. É ela ainda não ter sido testada por ninguém além de quem escreveu.

Uma observação fica presa ao projeto, duas viram regra

A regra que eu sigo é curta. Lição de um projeto continua valendo só para aquele projeto, por mais universal que pareça na hora de escrever. Ela ganha escopo geral quando pelo menos dois projetos bateram na mesma parede de forma independente.

"De forma independente" é a parte que faz o trabalho. O mesmo projeto tropeçando duas vezes na mesma pedra não conta. Eu levar a conclusão de um projeto para o outro também não conta, porque aí a segunda observação sou eu repetindo a primeira. Precisa ser dois projetos diferentes, cada um chegando ali pelo próprio caminho.

Toda lição nasce candidata

Quando eu escrevo uma lição e não tenho certeza do escopo, ela nasce marcada como candidata. É uma etiqueta de estado, não um julgamento de qualidade. Significa: isto vale onde aconteceu e ainda não vale como regra em todo lugar.

A etiqueta não depende da minha memória. Um hook acrescenta a marca sozinho em qualquer cabeçalho de lição que chegue sem escopo definido.

out.append(line.rstrip() + " [scope: candidate]")

A lição candidata continua visível e entra na revisão semanal como qualquer outra. É ali que ela pode ser promovida, quando existe motivo. O critério por trás disso é escolher sempre o escopo mais estreito na dúvida. O estreito sobe depois sem dificuldade. Rebaixar um escopo amplo é que dá trabalho: a lição perde o sinal que a fazia aparecer numa busca.

LEIA TAMBÉM · Caso realO que faz uma lição atravessar de um projeto para outro é a retratação escrita, não a ferramentaTenho vários sistemas que aprendem separados uns dos outros. Abro uma conversa com a IA e peço que ela leia todos e compare. O que encontra vira lista de tarefas — e quando erra, o erro fica escrito ali também.

Esperar custa paciência, e essa é a ideia

Tenho duas lições nesse estado agora. Uma é sobre não dizer que o maquinário está pronto quando ele só está montado. A outra é sobre um campo producer em metadados. As duas parecem gerais quando eu releio. As duas continuam candidatas, porque até aqui apareceram em um projeto só.

Recomendo segurar a promoção mesmo quando parece óbvio, e o preço disso é a sensação de desperdício: a lição está escrita, está à vista, e não está sendo aplicada em nenhum outro lugar. É um custo deliberado. Ele sai mais barato que o custo oposto, que é espalhar uma regra falsa para todos os projetos e descobrir o erro só quando ela já atrapalhou em outro lugar.

Quando a segunda observação chega, o sinal é inconfundível

Teve um caso em que o desenho funcionou exatamente como eu queria. A lição era simples: uma tarefa agendada marcada como pronta não é o mesmo que uma tarefa rodando de verdade.

Ela apareceu em dois projetos meus de forma independente. Nenhum dos dois copiou do outro. Cada um chegou à mesma correção pelo próprio caminho, e foi esse encontro, não a minha convicção sobre o assunto, que autorizou tratar aquilo como regra geral.

O contraste entre esse caso e as duas lições que seguem esperando é o que me convence de que o critério funciona. Uma observação fica. Duas sobem.

LEIA TAMBÉM · Caso realMeu orquestrador entre seis projetos não tem código, e isso foi decisão de designMontei um assistente que lê vários projetos e compara o que cada um aprendeu. Ele não tem programa nenhum: sou eu abrindo uma conversa, ele lendo os arquivos e escrevendo o que encontrou.

O teste antes de promover cabe numa pergunta

Antes de transformar qualquer lição em regra geral eu pergunto uma coisa só: isso já apareceu sozinho em outro projeto, ou é a primeira vez que eu estou vendo? Se for a primeira vez, ela fica candidata. Não descartada, não escondida, só não promovida ainda.

A condição que derrubaria essa regra é fácil de enunciar. Se toda lição que parece óbvia na primeira observação se confirmasse na segunda, sem exceção, a espera seria burocracia e eu estaria perdendo tempo com ela. Não é o que eu vejo. Nem toda observação isolada se confirma quando o segundo projeto aparece, e é por isso que eu espero o segundo.