← Latest Blog Posts

🎵 Spotify Podcast

O desenvolvimento moderno de software, frequentemente auxiliado por Grandes Modelos de Linguagem (LLMs), tem sido dificultado pela "codificação por vibe" (vibe coding), onde prompts amplos resultam em implementações imprecisas ou inesperadas. Para combater essa imprecisão e a falta de clareza na especificação, o GitHub introduziu o Spec Kit, um kit de ferramentas de código aberto projetado para estabelecer um fluxo de trabalho estruturado e verificável. O Spec Kit é um projeto que move o desenvolvimento de software para uma abordagem orientada por especificação (Spec-Driven Development - SDD), onde a especificação se torna o artefato vivo e executável que define a intenção de construção, garantindo que todas as partes interessadas e ferramentas de I.A. se alinhem a uma única fonte de verdade.

O Spec Kit opera transformando a solicitação ad hoc em um fluxo de trabalho em fases claramente definidas. O kit inclui uma ferramenta de linha de comando (CLI) chamada specify, templates e steering prompts (prompts de direção), sendo compatível com diversos agentes de codificação, como GitHub Copilot, Claude Code e Gemini CLI. Essa abordagem visa fechar as lacunas entre a intenção e a implementação, resultando em código mais limpo, seguro e confiável. O uso do CLI, embora opcional, facilita o scaffolding de projetos e a instalação das dependências e templates iniciais, que também podem ser baixados diretamente dos releases.

O fluxo de trabalho do Spec Kit é rigorosamente organizado em quatro fases com checkpoints de validação. A primeira fase é Specify (Especificar), onde o desenvolvedor descreve o que e o porquê da construção, focando em jornadas de usuário e resultados. O agente de I.A. usa esta entrada para gerar o documento de especificação detalhado. Em seguida, a fase Plan (Planejar) define a pilha tecnológica e as restrições arquitetônicas, resultando em um plano técnico que deve honrar os princípios estabelecidos no Constitution (Constituição) do projeto. A Constituição estabelece princípios não negociáveis, como requisitos de teste, stack tecnológico ou regras de entrega (ex: static first delivery).

Após o planejamento, a fase Tasks (Tarefas) entra em ação, quebra o plano e a especificação em unidades pequenas, acionáveis e testáveis. Finalmente, na fase Implement (Implementar), a I.A. executa as tarefas incrementalmente, permitindo ao desenvolvedor revisar e refinar cada mudança. O Spec Kit garante controle granular total sobre a execução, sendo que os artefatos gerados — Specification, Plan, Constitution e Tasks — são arquivos Markdown, o que permite fácil edição manual por humanos. É crucial que o desenvolvedor, o "humano no loop", use comandos como /clarify para identificar e preencher quaisquer pontos cegos ou requisitos subespecificados no spec.

A integração técnica profunda do Spec Kit com agentes, como o Copilot dentro do Visual Studio Code (VS Code) Insiders, é facilitada pela utilização de Modos de Chat (Chat Modes). Estes Modos de Chat funcionam como system prompts programáveis, e são acionados por prompts de atalho (slash commands como /specify). Essa reorganização permite que o agente entenda exatamente qual comportamento programático deve seguir.

Uma funcionalidade técnica chave para otimizar o fluxo de trabalho é o uso de Agent Handoffs (Transferência de Agente), atualmente disponível no VS Code Insiders. Um handoff é definido no front matter YAML do modo de chat, e serve para indicar ao agente qual é o próximo passo lógico após a conclusão de uma tarefa. Por exemplo, após finalizar a Constituição, o handoff sugere o comando "Build Specification".

Os handoffs melhoram drasticamente a Experiência do Usuário (UX) no VS Code, pois codificam a sequência do fluxo de trabalho no próprio ambiente de desenvolvimento. Isso elimina a necessidade de o desenvolvedor adivinhar qual comando executar em seguida (o que é vital dada a "proliferação de comandos"—command sprawl—do Spec Kit, como /clarify, /analyze, /plan, etc.). Um handoff pode ser configurado para simplesmente sugerir o próximo passo, exigindo input adicional do usuário, ou pode ser configurado com a opção send: true para enviar o prompt automaticamente.

O processo também utiliza branches Git isolados para cada iteração ou recurso, garantindo que o trabalho esteja organizado e que as alterações possam ser revertidas. O Spec Kit encoraja a iteração; o desenvolvedor pode usar diferentes modelos (como GPT-5, Claude Sonnet 4, Grok) para diferentes fases — por exemplo, GPT-5 para scaffolding e Sonnet 4 para implementação criativa de código. O objetivo final é criar software consistente, pois o spec e seus artefatos associados (como contratos e planos) formam um contexto de memória para o sistema. Este documento de especificação, sendo um "documento vivo", captura decisões de design e lições aprendidas, permitindo que o projeto seja facilmente reconstruído ou adaptado a novas tecnologias no futuro.