Como usar o Claude Opus 5.5 em uma migração de código que atravessa o repositório inteiro

O Claude Opus 5.5 chegou em 22 de setembro de 2026 mirando codificação agêntica de longa duração, e a Anthropic destaca justamente uma migração de 680.000 linhas concluída em menos de um dia. O que faz isso funcionar não é só o modelo: é o recorte. Você mapeia o repositório, escreve a regra da migração no CLAUDE.md, planeja no plan mode, fatia em lotes, delega como dynamic workflow e revisa em pontos de parada definidos. Com 1 milhão de tokens de contexto, checkpoints a cada turno e /rewind, dá pra escalar sem perder o controle do que foi alterado
Fala aí, beleza? A Anthropic soltou o Claude Opus 5.5 e trouxe junto um caso que chama atenção: testadores iniciais concluíram uma migração de código de 680.000 linhas em menos de um dia, trabalho que levaria semanas pra um time de engenharia
Se você já tentou algo parecido, sabe que a parte difícil não é o modelo ser burro
Migração que atravessa o repositório inteiro quebra por outros motivos: escopo mal cortado, nenhum ponto de parada, ninguém sabendo dizer o que já foi migrado e o que ainda não foi, e aquele momento clássico em que a IA "consertou" um arquivo que ninguém pediu pra ela tocar
Então a ideia aqui é bem prática: um roteiro de etapas que o Claude Opus 5.5 consegue conduzir com autonomia, com critério de revisão humana e ponto de parada em cada fase
Bora? 🙂
O que o Claude Opus 5.5 muda para migrações grandes
O lançamento foi em 22 de setembro de 2026, apresentado como sucessor do Opus 5 e voltado especificamente pra codificação agêntica de longa duração
Ou seja: tarefa que roda por horas, com muitas chamadas de ferramenta, sem humano puxando o volante a cada passo
Os números que importam pro nosso caso, todos atribuídos à própria Anthropic:
- janela de 1 milhão de tokens de contexto
- auditoria e correção de uma base de 200.000 linhas em menos de três horas, contra mais de 20 horas e 2,5x mais tokens no Opus 5
- consistência: sucesso em 39 de 40 tentativas numa tarefa repetida de reduzir tempo de carregamento em todas as páginas de um app web
Esse último número é o mais subestimado da lista
Pra migração em lote, consistência vale mais que pico de inteligência: você vai rodar a MESMA tarefa dezenas de vezes em pedaços diferentes do repo, e o que te mata é a variância, não o teto
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 45min
Na Artificial Analysis, o modelo aparece com 54 no Artificial Analysis Intelligence Index na configuração Adaptive Reasoning, High Effort, Default Fallback, contra mediana 25 dos modelos comparáveis
E o preço de API ficou assim: US$ 4 por milhão de tokens de entrada e US$ 20 por milhão de saída, com leitura de cache a US$ 0,20
Segundo o The New Stack, isso representa entrada e saída 20% mais baratas que o Opus 5, leitura de cache 60% mais barata e custo cerca de 40% menor em cargas típicas nas configurações padrão
Nada disso é promessa de que a SUA migração vai rodar em um dia, beleza? São os números da fonte, e o resto é método
O que você precisa antes de começar
Antes de abrir o terminal, checklist rápido:
- Repositório versionado e uma branch dedicada só pra migração. Não é frescura, é o seu
Ctrl+Zde verdade - Suíte de testes que roda de ponta a ponta. Sem isso você não tem como saber se o lote 7 quebrou o que o lote 3 arrumou
- Critério de aceite escrito. Uma definição literal do que significa "migrado" nesse projeto. Se você não consegue escrever em três linhas, o modelo também não vai adivinhar
- Acesso ao modelo. O Claude Opus 5.5 é o novo padrão no Claude Max e o modelo mais forte disponível no Claude Pro. Na Claude API, o identificador é
claude-opus-5-5; no Amazon Bedrock, ele viraanthropic.claude-opus-5-5 - Plano pago se você for usar dynamic workflows. Eles estão disponíveis em todos os planos pagos, com acesso via Anthropic API, e também no Amazon Bedrock, no Google Cloud Agent Platform e no Microsoft Foundry. No plano Pro, são ativados na linha Dynamic workflows dentro do
/configdo Claude Code
E um alerta operacional que quase ninguém conta antes:
Requisições sinalizadas pelos classificadores de segurança caem por padrão pra um modelo anterior, o Opus 4.8, no Claude.ai, no Claude Code e no Claude Cowork
Em fluxo agêntico de várias etapas isso pode acontecer requisição a requisição, misturando modelos dentro do MESMO fluxo
Tome cuidado: se metade do seu lote saiu com uma qualidade e metade com outra, essa pode ser a explicação antes de você culpar o prompt
Passo a passo: quebrar a migração em etapas que o Opus 5.5 executa e você revisa
O princípio é um só: o modelo trabalha melhor quando o pedaço cabe inteiro na cabeça dele E quando existe um lugar pra voltar se der ruim
Vamos ver na prática?
1. Mapear o repositório com um inventário antes de editar qualquer coisa
Primeira rodada é leitura pura, zero escrita
Você quer um inventário: onde o padrão antigo aparece, em quantos arquivos, agrupado por módulo, com os casos esquisitos separados dos casos repetitivos
Essa é a hora dos subagentes. Eles são arquivos Markdown com frontmatter YAML e servem exatamente pra tarefas laterais que inundariam a conversa principal com resultado de busca, log e conteúdo de arquivo
Ou seja: o subagente varre, sofre, e devolve pra conversa principal só o resumo que interessa
O erro comum deste passo: deixar a busca acontecer no contexto principal. Você queima metade do contexto com grep e chega na fase de edição sem espaço pra raciocinar sobre a arquitetura
2. Escrever as regras da migração no CLAUDE.md do projeto
Instrução que precisa valer em TODOS os lotes não pode morar no chat
Pra isso existe o CLAUDE.md no diretório do projeto (contexto do projeto) ou o ~/.claude/CLAUDE.md (instruções de nível de usuário)
Um esqueleto que funciona bem:
## Migração em andamento
Padrão antigo (remover):
chamadas diretas a `db.query()` espalhadas nos controllers
Padrão novo (adotar):
toda leitura passa pelo repositório em `src/repositories/`
Nunca tocar:
- `src/legacy/billing/` (congelado, contrato com terceiro)
- arquivos de migration já aplicados em produção
Critério de aceite do lote:
- suíte de testes verde
- nenhum import novo fora da lista aprovada
- diff só dentro do diretório do lote
Repare que metade do arquivo é sobre o que NÃO fazer
É o pedaço mais valioso, porque migração codebase-wide erra muito mais por excesso de iniciativa do que por falta
O erro comum deste passo: escrever a regra como desejo vago ("modernizar o acesso a dados") em vez de padrão reconhecível. O modelo precisa conseguir olhar um arquivo e responder sim ou não
3. Planejar no plan mode antes de liberar escrita
No Claude Code, você entra no plan mode pressionando Shift+Tab até a barra de status mostrar plan mode on, ou já iniciando a sessão assim:
claude --permission-mode plan
Aí você pede o plano da migração completa, lê, e corta
Detalhe que muita gente não usa: Ctrl+G abre o plano no editor de texto, e você edita ali antes de o Claude seguir
É nesse editor que você apaga as três etapas otimistas que ele inventou e transforma "migrar o módulo de pagamentos" em quatro lotes menores
O erro comum deste passo: aprovar um plano de 15 etapas porque ele "pareceu bom". Plano aprovado sem corte vira execução sem freio
4. Fatiar em lotes e delegar como dynamic workflow
Um dynamic workflow é um script JavaScript que orquestra vários subagentes
O Claude escreve o script a partir da tarefa que você descreveu e um runtime executa em segundo plano
A documentação do Claude Code indica esse recurso justamente pros casos que a gente tá tratando aqui: auditoria codebase-wide, migração grande e pesquisa que precisa de checagem cruzada
Pra iniciar, você pede o workflow no próprio prompt. Algo no espírito de:
Crie um dynamic workflow para migrar o lote 1 (src/modules/orders).
Regras da migração: ver CLAUDE.md.
Um subagente por arquivo tocado.
Cada subagente roda os testes do módulo antes de encerrar.
Não saia de src/modules/orders.
O erro comum deste passo: lote definido por quantidade de arquivos em vez de fronteira de código. 40 arquivos do mesmo módulo é um lote; 40 arquivos espalhados por seis módulos é uma confusão com número bonito
5. Acompanhar com /workflows e salvar o script pro próximo lote
Com a execução rodando, /workflows lista as execuções em andamento e concluídas, a fase de cada uma e quantos agentes já terminaram
Esse é o seu painel. É aqui que você percebe que um lote empacou numa fase antes de gastar mais uma hora de execução
E tem o truque que faz a migração escalar: rode /workflows, selecione a execução e pressione s pra guardar o script daquela execução como comando
Pronto, o lote 2 não começa do zero. Você reusa o mesmo script que já funcionou no lote 1, mudando só o alvo
O erro comum deste passo: deixar o workflow rodar sem olhar e só voltar no fim. Se o primeiro lote já saiu torto, todos os outros vão sair tortos junto
6. Subir o esforço só onde dói
O parâmetro effort controla a profundidade de raciocínio e tem cinco níveis: low, medium, high, xhigh e max
Detalhe importante pra quem vem do modelo anterior: no Claude Opus 5.5 o padrão é medium, enquanto no Opus 5 o padrão era high
Se o seu fluxo parecia "mais raso" depois de trocar de modelo, provavelmente é isso, não é o modelo
Pra lote repetitivo, o padrão dá conta e sai mais barato. Pra o lote que tem regra de negócio torta e dependência circular, você sobe
No topo tem o ultracode, que combina esforço xhigh com orquestração automática de workflows:
claude --effort ultracode
Dentro de uma sessão já aberta, /effort ultracode faz o mesmo. E dá pra fixar em arquivo de settings:
{
"ultracode": true
}
Esse settings pode ser passado via --settings ou vir num control request do Agent SDK
O erro comum deste passo: ligar ultracode no repositório inteiro "por garantia". Você paga raciocínio profundo pra renomear import, que é a tarefa mais burra do mundo
7. Ligar o advisor como segunda opinião nos pontos de decisão
O advisor consulta um segundo modelo em momentos de decisão: antes de fixar uma abordagem, quando trava num erro recorrente, ou antes de declarar a tarefa concluída
E ele recebe a conversa completa, incluindo chamadas de ferramenta e resultados. Não é um "o que você acha disso aqui?" solto no vácuo
/advisor opus
/advisor sem argumento mostra o modelo atual e os aliases aceitos, a flag --advisor configura por sessão e /advisor off desliga
Uma regra dura da documentação: o advisor precisa ser ao menos tão capaz quanto o modelo principal. Segunda opinião mais fraca que a primeira não é revisão, é ruído
Esse padrão de segunda leitura é o mesmo que vale quando você precisa revisar código em linguagem que não domina: você não vira especialista de repente, mas para de aceitar a primeira resposta como verdade
O erro comum deste passo: tratar o advisor como aprovador. Ele é insumo da SUA decisão, não substituto dela
8. Automatizar a barreira de qualidade com hooks
Hooks são comandos shell, endpoints HTTP, chamadas de ferramenta MCP, prompts de LLM ou subagentes definidos por você, que rodam automaticamente em pontos específicos do ciclo de vida do Claude Code
É aqui que teste e lint deixam de depender da boa vontade do agente e viram parte do trilho
E tem um detalhe que casa perfeito com migração em lote: hooks de arquivos de settings, de managed policy settings e de plugins também rodam DENTRO dos subagentes
Ou seja, a barreira vale pra cada agente do workflow, não só pra conversa principal 😀
O erro comum deste passo: confiar no "rode os testes no final" escrito no prompt. Instrução em prompt é pedido; hook é garantia
Onde cortar os lotes: tipos de migração e como fatiar cada um
O método é sempre o mesmo, o que muda é a unidade de lote
Troca de biblioteca ou framework
Unidade de lote: por módulo, seguindo a fronteira de import
Começa pelo módulo com menos dependências de entrada (o que ninguém importa) e sobe na árvore
Sinal de que o lote ficou grande demais: o plano começa a incluir "ajustar também os testes de X e Y" de módulos que não estavam no escopo
Atualização de API interna com assinatura nova
Unidade de lote: por tipo de chamada, não por arquivo
Todas as chamadas com a assinatura A viram um lote, as com assinatura B viram outro, mesmo que estejam espalhadas
É o caso em que o inventário do passo 1 paga sozinho o tempo investido
Sinal de alerta: o mesmo arquivo sendo tocado em três lotes diferentes. Se isso acontecer muito, reagrupe por arquivo
Renomeação de padrão que aparece em centenas de arquivos
Unidade de lote: por diretório, com lote grande mesmo
Aqui o trabalho é mecânico e o effort padrão (medium) já resolve
Sinal de que passou do ponto: começarem a aparecer alterações de lógica no diff. Renomeação que altera comportamento não é renomeação, é refatoração disfarçada
Remoção de código morto
Unidade de lote: por candidato, com verificação obrigatória antes da remoção
Esse é o tipo que mais precisa de ponto de parada humano, porque "ninguém chama" é uma afirmação difícil de provar em código dinâmico
Sinal de alerta: o agente removendo algo e adaptando um teste pra continuar verde. Teste ajustado pra acompanhar a remoção é um ponto de parada, sempre
Auditoria com correção
É o caso que a Anthropic cita direto: base de 200.000 linhas auditada e corrigida em menos de três horas, contra mais de 20 horas e 2,5x mais tokens no Opus 5
Unidade de lote: por categoria de achado, separando o relatório da correção
Primeiro roda a leitura e gera a lista, você prioriza, e só depois vira workflow de correção
Esse fatiamento é o mesmo raciocínio de quando você usa o agente pra achar falhas de segurança no código: achado e correção são etapas diferentes, com revisão humana no meio
Sinal de que o lote ficou grande demais: o relatório vindo com achados de severidades misturadas e sem prioridade. Aí você não revisa, você só lê
Pontos de parada: quando interromper e revisar antes de seguir
Antes dos sintomas, a rede de segurança
O Claude Code cria checkpoints automáticos: cada prompt que inicia um turno gera um checkpoint, e o Claude tira um snapshot dos arquivos antes de cada alteração
Pra voltar, dois toques em Esc ou o comando /rewind abrem o menu com as opções restaurar código e conversa, restaurar conversa, restaurar código ou resumir a partir dali
Saber que existe a opção de restaurar SÓ a conversa muda o jogo: às vezes o código tá certo e quem se perdeu foi o contexto
Agora os sintomas 👇
Sintoma: a saída ficou muda entre chamadas de ferramenta
Causa: no Claude Opus 5.5, o texto entre chamadas de ferramenta volta em blocos de thinking cujo texto vem vazio na configuração de exibição padrão
Solução: se a sua aplicação transmitia esse texto como atualização de progresso, ela vai parecer travada mesmo estando trabalhando. Troque o sinal de progresso pra algo que não dependa desse texto
Como prevenir: teste o fluxo agêntico em uma tarefa curta antes de soltar o lote de duas horas. Silêncio de duas horas dá pânico e pânico gera Ctrl+C no meio da migração
Sintoma: o fluxo mistura modelos no meio do caminho
Causa: requisições sinalizadas pelos classificadores de segurança caem por padrão pro Opus 4.8 no Claude.ai, no Claude Code e no Claude Cowork, e num fluxo de várias etapas isso pode acontecer requisição a requisição
Solução: trate esse lote como não confiável e revise o diff inteiro dele à mão antes de seguir
Como prevenir: lote menor. Quanto mais curto o lote, menor a chance de ele terminar com metade do trabalho feito por um modelo e metade por outro
Sintoma: o lote editou arquivo fora do escopo
Causa: a fronteira do lote existia no seu prompt, mas não existia como regra persistente
Solução: /rewind, restaurar código, e reescrever a fronteira no CLAUDE.md com caminho literal em vez de descrição
Como prevenir: hook rodando na barreira de qualidade, checando que o diff não saiu do diretório do lote. Já vi gente descobrir isso só no code review, e aí são 200 arquivos pra desembaraçar 😛
Sintoma: código que funcionava com o Opus 5 quebrou
Causa: são quatro mudanças que quebram compatibilidade
thinkingnão pode ser desabilitado (o pensamento adaptativo está sempre ligado no Opus 5.5)- uso forçado de ferramenta retorna erro
- blocos de thinking ficam atrelados ao modelo e à conversa
- na Claude API e no Google Cloud, a ferramenta
computer_20251124não é aceita
Solução: revisar o código de integração antes da migração, não durante
Como prevenir: rode um lote piloto minúsculo com o modelo novo só pra validar a integração. É o mesmo princípio de subir um deploy pequeno antes do grande
Quanto custa rodar a migração inteira e como segurar a conta
Os números, todos por milhão de tokens:
| Item | Claude Opus 5.5 | Contra o Opus 5 |
|---|---|---|
| Entrada | US$ 4 | 20% mais barato |
| Saída | US$ 20 | 20% mais barato |
| Leitura de cache | US$ 0,20 | 60% mais barata |
| Escrita de cache (expiração de 5 minutos) | US$ 5 | não informado |
| Escrita de cache (expiração de 1 hora) | US$ 8 | não informado |
| Carga típica, configuração padrão | custo cerca de 40% menor | |
| Geração de saída | mais de 30% mais rápida |
A leitura desses números pro nosso caso é direta
Migração em lote é o cenário perfeito de cache: o CLAUDE.md, o inventário e as regras se repetem em TODO lote, e leitura de cache a US$ 0,20 por milhão é outra categoria de preço comparada à entrada normal
Soma isso ao effort padrão medium e você tem lote repetitivo saindo bem mais barato do que sairia mantendo tudo no esforço alto por reflexo
E quando a etapa precisa cuspir MUITO código de uma vez, existe o limite estendido de saída: até 300 mil tokens de saída com o header beta output-300k-2026-03-24, na Message Batches API
Duas notas pra fechar essa parte
A primeira: o Claude Opus 5.5 usa preserved thinking, a salvaguarda anti-destilação introduzida com o Fable 5.1, que impede usuários da API de editar o contexto anterior do Claude pra extrair o raciocínio dele. Se o seu fluxo dependia de mexer nesse contexto, ajuste antes
A segunda: Claude Sonnet 5.5 e Claude Haiku 5.5 são esperados nas próximas semanas, e aí vai valer revisitar quais lotes realmente precisam do modelo mais caro
Porque, convenhamos, renomear import com o modelo top de linha é queimar dinheiro com estilo
O resumo do método e o próximo passo
O ciclo inteiro cabe em sete palavras: mapear, escrever a regra, planejar, lotear, executar, revisar, recomeçar
O Claude Opus 5.5 entrega a parte difícil (contexto de 1 milhão de tokens, consistência em tarefa repetida, execução longa em segundo plano)
A parte que continua sendo sua é o recorte e o ponto de parada. Sem isso, você não tem migração autônoma, você tem um diff gigante que ninguém quer revisar
Próximo passo, bem concreto: escolhe o MENOR lote possível do seu repositório. Um módulo, de preferência um que ninguém importa
Roda o ciclo completo nele: inventário, regra no CLAUDE.md, plan mode, workflow, hook de teste, revisão do diff
Se o ciclo fechar limpo nesse lote minúsculo, aí sim você escala pros lotes grandes com o script já salvo
Se não fechar, você descobriu isso gastando quase nada, que é exatamente o objetivo 😉
Até o próximo post!
Perguntas frequentes
Claude Opus 5.5 aguenta migrar um repositório de 1 milhão de linhas de uma vez só?
A janela de contexto é de 1 milhão de tokens, o que não é a mesma coisa que 1 milhão de linhas de código lidas de uma vez. O caso citado pela Anthropic foi uma migração de 680.000 linhas concluída em menos de um dia, mas isso envolveu quebrar o trabalho em etapas, não jogar o repo inteiro numa única chamada.
Dá pra rodar a migração inteira num único dynamic workflow?
Dá, e é exatamente pra esse cenário que o recurso existe: auditoria codebase-wide, migração grande ou pesquisa que precisa de checagem cruzada. Você inicia pedindo o workflow no prompt, acompanha com /workflows e, se quiser reaproveitar, salva o script apertando s na execução selecionada.
Por que parte do meu lote sai com qualidade diferente do resto usando o mesmo prompt?
Requisições sinalizadas pelos classificadores de segurança caem por padrão para o Opus 4.8, tanto no Claude.ai quanto no Claude Code e no Claude Cowork. Num fluxo agêntico de várias etapas isso pode acontecer requisição a requisição, misturando modelos dentro do mesmo lote sem aviso.
Preciso do Claude Max pra usar o Opus 5.5 numa migração grande?
Não necessariamente. O Opus 5.5 é o modelo padrão no Claude Max e o modelo mais forte disponível no Claude Pro; a diferença prática pra migração grande está mais em ter plano pago pra acessar dynamic workflows, disponíveis em todos os planos pagos.
O parâmetro effort muda o resultado de uma migração grande?
Sim, o effort controla a profundidade de raciocínio em cinco níveis: low, medium, high, xhigh e max. No Opus 5.5 o padrão é medium (diferente do Opus 5, que vinha em high por padrão), então vale considerar subir o nível em etapas mais delicadas da migração.
Código escrito pensando no Opus 5 continua funcionando sem ajuste no 5.5?
Não sem revisão. Existem quatro mudanças que quebram compatibilidade: o thinking não pode mais ser desabilitado, uso forçado de ferramenta retorna erro, blocos de thinking ficam atrelados ao modelo e à conversa, e na Claude API e no Google Cloud a ferramenta computer_20251124 não é mais aceita.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Bateu o limite de uso do Claude Code? Como retomar a tarefa sem refazer tudo
Bateu o limite de uso do Claude Code? Veja como retomar a tarefa de onde parou com /usage, CLAUDE.md e --continue, sem refazer nada.
Como pagar o Claude Code no Brasil: cartão, dólar, IOF e quanto fica em reais
Claude Code preço Brasil na prática: câmbio, IOF de 3,5% e quanto fica na fatura. Planos Pro e Max convertidos em reais e como pagar com cartão.

O que é o JEV e para que ele serve no Claude Code?
O que é JEV no Claude Code? Entenda o modelo da TypeSafe AI, como instalar a skill e quanto custa por milhão de tokens.
