Na semana passada, o mundo dos editores de código com IA tremeu com um novo anúncio da Amazon. Ela lançou o Kiro, um novo editor de código com IA baseado no VS Code, mas com uma proposta diferente quando comparado a outros editores de código com IA.
O problema do vibe coding
Se você acompanhou o desenvolvimento de editores como Cursor e Windsurf, provavelmente ouviu o popular termo “vibe coding” sendo usado aqui e ali. Faço vibe coding há algum tempo e ele é divertido em certas etapas. Mas há muitas dificuldades.
Para mim, a principal dificuldade é que é fácil perder o rumo. Você começa um projeto e, à medida que sua cabeça se enche de ideias, acaba em um ciclo de corrigir código, quebrá-lo, corrigi-lo novamente, e nada sai disso.
Isso pode ser resolvido com documentação, mas ela também é uma dificuldade. O vibe coding torna difícil atualizar a documentação simplesmente porque você está no fluxo das vibes. Então, é provável que produza muito código e esqueça da documentação.
E, por fim, a qualidade do código é questionável, no melhor dos casos. E sejamos francos: ninguém olha o código produzido durante o vibe coding antes de fazer um commit. Tudo é muito mais orientado a testar e garantir que funciona.
Kiro tenta resolver o problema do vibe coding
Ao abrir o chat de IA no Kiro, é pedido que você escolha o modo: Vibe ou Spec.
Vibe é exatamente como você espera. Ele vai produzir código conforme você passa coisas para ele.
Spec é um pouco mais complexo e, na minha opinião, é um passo na direção certa. O modo Spec produzirá três documentos: requisitos, design e tarefas. Todos como arquivos Markdown dentro do diretório .kiro. A UI do Kiro já foi feita propositalmente para exibir esses três arquivos como um recurso central do editor.

Requisitos
Quando você descreve sua necessidade no chat, ele gera primeiro um arquivo de requisitos. Esses requisitos seguem uma estrutura:
### Requirement 1
**User Story:** As a healthcare professional, I want the application to support both English and Brazilian Portuguese, so that I can use it in my preferred language.
#### Acceptance Criteria
1. WHEN the user first opens the application THEN the system SHALL detect the browser language and set it as default
2. WHEN the user selects a language option THEN the system SHALL update all interface elements to the selected language
3. WHEN the user dictates in Portuguese THEN the system SHALL transcribe and process the content in Portuguese
4. WHEN the user dictates in English THEN the system SHALL transcribe and process the content in English
5. WHEN generating reports THEN the AI SHALL maintain the same language as the input transcription
Ele gerará tantos requisitos quanto forem necessários para cumprir sua ideia. Você pode adicionar mais prompts para refinar ou acrescentar requisitos.
Quando estiver satisfeito, passa para a fase de design.
Design
Design é um termo ruim para descrever esta etapa. Acho que “arquitetura” seria mais apropriado. Mas é o design do sistema.
Ele gerará um documento com toda a arquitetura da sua aplicação, incluindo alguns diagramas Mermaid, interfaces de tipos, interfaces de serviços e assim por diante. Também fornecerá detalhes sobre quais tecnologias usar.
Abaixo há um exemplo de diagrama Mermaid:
graph TB
A[User Interface] --> B[Audio Recording Service]
A --> C[Template Management Service]
A --> D[Report Generation Service]
A --> E[Storage Service]
A --> F[i18n Service]
B --> G[Web Speech API]
C --> H[PDF Processing Library]
D --> I[OpenAI API]
E --> J[IndexedDB]
F --> K[Language Files]
subgraph "External Services"
G
I
end
subgraph "Browser APIs"
J
end
Mais uma vez, você pode adicionar prompts para refinar o documento de arquitetura com tecnologias específicas ou alterações em interfaces ou tipos.
Dependendo da profundidade da mudança que você quer, o Kiro entenderá que a nova mudança precisa de um novo requisito ou de uma alteração em um requisito existente. Isso mostra o quanto as fases estão profundamente conectadas.
Quando estiver satisfeito, passa para a fase de tarefas.
Tarefas
As tarefas são uma lista de passos concretos a serem executados para implementar a arquitetura com base nas especificações.
Elas são formatadas como listas Markdown, e o Kiro adiciona atalhos no topo de cada tarefa para executá-las ou reexecutá-las quando necessário. Isso permite executar cada tarefa individualmente e garantir que foi verificada e funciona como esperado.
Cada execução de tarefa é implementação pura. Você pode fazer commit de cada iteração, uma a uma.
Considerações
Eu gosto? Sim. Vou usar? Não.
Porque é complexo demais e, na minha perspectiva, a Amazon chegou tarde à festa. Claro, o Kiro faz algo que nenhuma outra ferramenta de IA para programação faz. Gerar especificações com BDD, arquitetura e tarefas certamente é muito legal. Eu realmente respeito isso.
Mas a Anthropic está liderando o movimento de transformar desenvolvedores em desenvolvedores potencializados por IA. E adoro como ela está fazendo isso. O Claude Code é uma ferramenta incrível. O modo de planejamento, as skills e os MCPs são capazes de realizar qualquer tipo de tarefa, sem slop ou viés. Um bom conjunto de ferramentas integrado ao Claude Code faz toda a diferença.
É importante mencionar que a IA só é ótima para programar se você for ótimo em programação. A IA não fará seu trabalho. Ela o deixará mais rápido. Você ainda tem a responsabilidade de saber o que está fazendo.
Esse é meu conselho para desenvolvedores potencializados por IA hoje.