Table of Contents
O Fim da Desistência Precoce: Como a Skill Gratuita ‘Unlazy’ Força o Claude Code a Corrigir Bugs até o Fim
A evolução dos assistentes de programação atingiu um divisor de águas com a introdução do Claude Code, o agente autônomo de linha de comando (CLI) da Anthropic. Ao operar diretamente no terminal, o modelo ganhou acesso ao sistema de arquivos, aos comandos de compilação, ao Git e às suítes de testes automatizados. No entanto, mesmo com o salto de raciocínio da família Claude 3.5 e 3.7 Sonnet, engenheiros de software deparam-se com frequência com um padrão frustrante: a chamada “preguiça de agente” (AI agent laziness).
Em tarefas complexas de refatoração ou resolução de defeitos, é comum o agente aplicar uma alteração inicial, rodar os testes uma única vez, encontrar erros remanescentes no terminal e, em vez de persistir, encerrar a execução prematuramente com declarações como: “Apliquei as mudanças principais; agora execute os testes localmente e ajuste os eventuais erros residuais”.
Para sanar esse gargalo operacional sem adicionar custos de plataformas proprietárias, a comunidade técnica estruturou a skill “unlazy” — uma instrução de controle procedural de acesso gratuito que altera o ciclo de tomada de decisão do Claude Code, impedindo que a sessão seja finalizada enquanto houver falhas de compilação, quebras de linter ou testes unitários no vermelho.
A Anatomia da Desistência: Por Que Agentes de Terminal Param no Meio do Caminho?
Para compreender a eficácia da skill unlazy, é preciso primeiro diagnosticar a raiz comportamental dos Modelos de Linguagem de Grande Escala (LLMs) executando como agentes de desenvolvimento de software.
Os modelos treinados por Aprendizado por Reforço com Feedback Humano (RLHF) carregam um viés intrínseco de completude conversacional. Em uma interface de chat tradicional, o objetivo prioritário do modelo é fornecer uma resposta polida e concisa. Quando transpostos para uma interface agêntica como o Claude Code — onde o modelo pode invocar ferramentas (bash, file_edit, glob, grep) sucessivas vezes —, ocorre um conflito estrutural entre duas forças:
- Aversão à Divergência de Contexto: Conforme a árvore de execução acumula logs de erro de 200 linhas, tracebacks de compiladores e saídas verbosas, a janela de contexto se satura. O modelo perde a atenção aos parâmetros iniciais da solicitação e tende a “declarar vitória” precipitadamente para escapar da saturação semântica.
- Ausência de um Portão Mandatório de Saída (Exit Gate): Na configuração padrão do Claude Code, o modelo avalia subjetivamente se sua intervenção foi satisfatória. Se ele acredita ter alterado o arquivo correto, sua heurística considera o trabalho concluído, ignorando que o efeito colateral da edição quebrou outros três módulos adjacentes.
A skill unlazy atua diretamente nessa fraqueza: ela transforma uma decisão probabilística em uma restrição determinística de controle de fluxo.
O Mecanismo da Skill ‘Unlazy’: Como Funciona o Ciclo de Auto-Cura
A skill unlazy é implementada dentro da arquitetura nativa do Claude Code (através das diretrizes globais de projeto em CLAUDE.md ou nos arquivos de extensão de habilidades na pasta .claude/skills/). Ela injeta uma máquina de estados finitos que condiciona o encerramento da tarefa ao retorno binário de sucesso (exit code 0) das ferramentas de validação do projeto.
[Prompt do Usuário: "Corrija o bug no módulo de pagamentos"]
│
▼
[Claude Code: Diagnóstico e Edição]
│
▼
┌───────────────────────────────┐
│ Execução do Pipeline / Teste │
└──────────────┬────────────────┘
│
┌──────────────┴──────────────┐
▼ ▼
[Falha: Exit Code != 0] [Sucesso: Exit Code == 0]
│ │
┌───────────────┴──────────────┐ │
│ Interceptação 'Unlazy' │ │
│ - Bloqueia resposta final │ │
│ - Força parsing do traceback │ │
│ - Gera novo diff atômico │ │
└───────────────┬──────────────┘ │
│ │
└──────────────►──────────────┴──► [Encerramento Autorizado]
Os Três Pilares da Skill
- Supressão de Fugas Retóricas: Instruções taxativas vetam o uso de frases de transição passiva (como “Verifique se funciona”, “Deixei como exercício” ou “Pode ser necessário ajustar X”). O agente é instruído a tratar essas frases como erros fatais de sintaxe do próprio prompt.
- Laço de Feedback Fechado (Closed-Loop Testing): A skill identifica dinamicamente o gerenciador de testes do repositório (
pytest,npm test,cargo test,go test) e cria uma dependência de execução: o agente só tem permissão de usar a ferramenta de conclusão de tarefa após receber a confirmação de que os testes passaram sem nenhuma asserção falha. - Análise Incremental de Diffs: Quando um teste falha, a skill orienta o modelo a comparar o estado atual com o commit imediatamente anterior via
git diff, isolando regressões em vez de reescrever arquivos inteiros arbitrariamente.
Tabela Técnica: Execução Nativa vs. Claude Code com a Skill ‘Unlazy’
Abaixo, detalhamos o comportamento operacional do agente em sua configuração de fábrica em contraste com o ambiente configurado com a extensão procedural da skill gratuita:
| Parâmetro Técnico | Claude Code Padrão (Vanilla) | Claude Code com Skill ‘Unlazy’ | Impacto Prático na Engenharia |
|---|---|---|---|
| Condição de Saída | Heurística probabilística baseada na resposta da LLM | Determinística (exit code 0 obrigatório nos testes/linter) | Elimina a entrega de código funcionalmente quebrado |
| Tratamento de Testes Falhos | Reporta o erro e costuma transferir a resolução para o desenvolvedor | Reabre o ciclo de depuração, analisa o log e gera nova mutação de código | Reduz a necessidade de babysitting e intervenções manuais |
| Tolerância a Quebras Indiretas | Média/Baixa: ignora regressões em suítes de teste secundárias | Alta: exige execução de toda a suíte de regressão impactada | Garante estabilidade sistêmica e cobertura de ponta a ponta |
| Consumo de Contexto (Tokens) | Menor por comando, mas exige múltiplos prompts manuais subsequentes | Maior na sessão inicial contínua, porém com menor consumo total agregado | Menos trocas de contexto humano-máquina; resolução autônoma |
| Salvaguardas de Ciclo Infinito | Dependente do cancelamento manual pelo usuário (Ctrl+C) | Contador de iterações máximas (step limits) com checkpoint de Git | Segurança orçamentária e prevenção de loops de refatoração infinitos |
| Custo de Licenciamento | Gratuito (incluso na API do Claude) | 100% Gratuito (código aberto / configuração procedural) | Viabilidade imediata sem barreiras de paywall ou ferramentas pagas |
Implementação Prática: Configurando a Skill ‘Unlazy’ no seu Repositório
Para integrar a lógica da skill unlazy ao Claude Code sem ferramentas de terceiros ou wrappers pagos, você pode declarar essa automação dentro do arquivo de governança do projeto (CLAUDE.md) ou configurar uma skill local no diretório .claude/skills/unlazy.md.
Abaixo está o arquivo de configuração funcional, testado e pronto para produção, desenhado para forçar o Claude Code a permanecer em loop até a resolução completa:
# Skill: unlazy.md
# Localização: .claude/skills/unlazy.md ou incorporado em CLAUDE.md
---
name: unlazy
description: Impede o encerramento da sessão do Claude Code enquanto houver falhas em testes ou linters.
version: 1.0.0
---
## REGRAS DE EXECUÇÃO OBRIGATÓRIAS (UNLAZY LOOP)
Você está operando sob o protocolo restritivo UNLAZY. Você NÃO PODE concluir a tarefa,
emitir um sumário final ou solicitar intervenção manual se houver erros de teste ou build ativos.
### 1. Diretriz de Conclusão Binária
- Sua resposta só é considerada válida e encerrada se o comando de verificação retornar EXIT CODE 0.
- É TERMINANTEMENTE PROIBIDO emitir mensagens como:
* "Agora rode os testes..."
* "Isso deve resolver; se quebrar, ajuste..."
* "Deixei a implementação base para você estender..."
### 2. O Ciclo de Auto-Cura (The Loop)
Sempre que você alterar um arquivo de código:
1. Execute IMEDIATAMENTE a suíte de testes correspondente via bash tool (ex: pytest, npm test).
2. Se o retorno for diferente de 0 (falha):
a) Isole o traceback e identifique a asserção exata que falhou.
b) Verifique o git diff (`git diff -U3`) para garantir que você não introduziu regressões.
c) Aplique um patch corretivo pontual no arquivo problemático.
d) Execute a suíte de testes NOVAMENTE.
3. Repita o passo (2) até que 100% dos testes afetados passem com sucesso.
### 3. Mecanismo de Salvaguarda (Safety Circuit Breaker)
- Limite máximo de tentativas por tarefa atômica: 6 iterações de auto-correção.
- Caso atinja 6 tentativas sem sucesso:
* Reverta as alterações que causaram o impasse usando `git checkout -- .`
* Emita um relatório técnico detalhado explicando por que a abordagem atual é matematicamente
ou arquiteturalmente inviável, listando a restrição de design encontrada.
### 4. Validação Pré-Encerramento
Antes de considerar qualquer tarefa finalizada, execute:
Executa validação de tipos, linter e testes unitários
npm run lint && npm test # ou pytest && flake8 / mypy
Se este comando falhar, seu trabalho NÃO acabou. Volte ao passo 2.
Como Ativar a Skill na Linha de Comando
Com o arquivo salvo na raiz do seu projeto dentro do repositório, basta invocar o Claude Code passando o contexto da skill:
# Inicializando o Claude Code com o protocolo unlazy ativado
claude "Resolva os bugs do módulo de autenticação usando a skill unlazy. Execute os testes continuamente até o sucesso."
O agente lerá o contexto, assumirá a postura de validação contínua e só devolverá o controle do terminal quando o pipeline local responder em verde.
Engenharia de Custos e Salvaguardas: O Lado Real da Persistência Agêntica
Apesar de ser uma ferramenta gratuita em termos de software (trata-se de código aberto e engenharia de instruções, sem taxas adicionais de assinatura), a skill unlazy altera sensivelmente o consumo de tokens da API da Anthropic.
O Balanço de Tokens vs. Tempo do Engenheiro
Em um fluxo padrão, o Claude Code gasta cerca de 15.000 a 30.000 tokens para emitir um diagnóstico preliminar e tentar uma correção simples. Se o código falhar, o engenheiro humano precisa ler o erro, formular um novo prompt e submeter outra sessão, gastando tempo humano valioso.
Com o unlazy ativado:
- Consumo de Tokens: Uma sessão pode atingir de 80.000 a 150.000 tokens em uma única rodada de depuração contínua, pois cada ciclo de feedback reenvia os logs e os novos diffs para o modelo.
- Economia de Tempo: O desenvolvedor não precisa atuar como “retransmissor de erros do terminal”. O agente itera em background enquanto o programador foca em tarefas conceituais.
- Prevenção de Loops Destrutivos: A presença do Safety Circuit Breaker (limite de 6 a 8 iterações) é indispensável. Sem um limite de segurança expresso na instrução, o modelo pode entrar em um ciclo de correção circular (ex: corrigir um tipo quebrando outro indefinidamente), consumindo a cota de uso da API sem convergência de software.
💬 Participe da Discussão: Você já enfrentou o problema do Claude Code ou de outros agentes de CLI “desistirem” no meio da resolução de um bug complexo? Acredita que impor portões de validação obrigatórios via testes é o padrão ideal para o futuro do desenvolvimento agêntico? Deixe sua experiência e opinião nos comentários!
Assista à Demonstração Prática Completa
Acompanhe todos os detalhes, etapas práticas e testes na íntegra no player de alta definição abaixo:
Perguntas Frequentes (FAQ)
A skill ‘unlazy’ é um software pago ou requer assinatura adicional?
Não. A skill ‘unlazy’ é uma técnica de engenharia procedural e instrução de sistema 100% gratuita. Ela não exige a contratação de nenhuma ferramenta externa, SaaS ou extensão paga; funciona exclusivamente aproveitando a arquitetura nativa de personalização de habilidades (CLAUDE.md e skills locais) do próprio Claude Code da Anthropic.
O uso dessa skill aumenta os gastos com a API da Anthropic?
Indiretamente, sim. Embora a skill seja gratuita, ela mantém o Claude Code trabalhando de forma contínua e autônoma até que os bugs sejam corrigidos. Cada nova iteração de teste e edição de arquivo adiciona tokens de entrada e saída à mesma sessão. No entanto, o custo financeiro desses tokens costuma ser substancialmente inferior ao custo do tempo de engenharia manual necessário para diagnosticar e reorientar o agente a cada falha.
O que impede o Claude Code de entrar em um loop infinito de correções e queimar minha cota?
A proteção contra loops infinitos é garantida pelo Safety Circuit Breaker (disjuntor de segurança) configurado nas diretrizes da própria skill. Ao estipular um limite explícito de iterações (geralmente entre 5 e 8 tentativas consecutivas de correção), o agente é obrigado a parar, reverter alterações que degradaram o sistema e emitir um relatório formal de impedimento caso não consiga alcançar o retorno limpo dos testes.
Posso utilizar a skill ‘unlazy’ em qualquer linguagem de programação?
Sim. Como o Claude Code opera no nível do sistema operacional via terminal, a lógica do unlazy adapta-se a qualquer linguagem ou ecossistema. Basta que o projeto tenha comandos executáveis de terminal para verificação de integridade, como pytest (Python), npm test / vitest (JavaScript/TypeScript), cargo test (Rust), go test (Golang) ou mvn test (Java).
O que acontece se o bug estiver no próprio arquivo de teste e não no código-fonte?
Se o teste contiver um erro de asserção impossível de ser satisfeito pelo código-fonte, a skill unlazy tentará iterar no código de produção até atingir o limite do disjuntor de segurança. Para cenários onde testes antigos estão defasados, recomenda-se autorizar explicitamente o agente no prompt inicial a refatorar tanto o código de implementação quanto as asserções dos testes (test files), mantendo a rastreabilidade via commits do Git.
Onde exatamente devo salvar o arquivo da skill para que o Claude Code o reconheça?
Você pode salvar as regras da skill diretamente no arquivo CLAUDE.md na raiz do repositório (onde o Claude Code lê as instruções automaticamente ao iniciar a sessão) ou organizá-lo dentro do diretório de habilidades do agente, sob o caminho .claude/skills/unlazy.md. Ambas as abordagens são interpretadas nativamente pelo ambiente de execução do Claude Code.
Artigo redigido e expandido por Rodrigo Batista para o portal IA na Prática Digital, com base nas demonstrações do canal IA na Prática Digital.
Faça parte dos nossos grupos exclusivos no WhatsApp e Telegram!
Entre nos grupos oficiais de Achadinhos & Ofertas para receber cupons testados, promoções relâmpago da Shopee e Mercado Livre com até 80% de desconto e novidades de inteligência artificial em primeira mão direto no seu celular:
