Guia de Uso do GitHub Spec Kit
🚧 Projeto em Desenvolvimento Ativo: O GitHub Spec Kit é experimental e está passando por atualizações constantes. Consulte a documentação oficial para informações mais recentes.
📦 Repositório Oficial: github.com/github/spec-kit
Índice
- Visão Geral
- Instalação
- Pré-requisitos
- Download Manual
- Fluxo de Trabalho Detalhado
- 1. Inicie o Projeto (
init) - 2. Abra o Projeto no seu Editor
- 3. Defina a Constituição (
/constitution) - 4. Crie a Especificação (
/specify) - 5. Refine a Especificação (
/clarify) - 6. Elabore o Plano Técnico (
/plan) - 7. Gere as Tarefas (
/tasks) - 8. Analise a Coerência (
/analyze) - 9. Implemente o Projeto (
/implement) - 10. Construa e Execute
- Tópicos Avançados e Perguntas Frequentes (FAQ)
- Como manter os artefatos atualizados?
- Como lidar com comportamento inesperado da IA?
- É possível usar em projetos existentes?
- Como trabalhar com Monorepos?
- E o Test-Driven Development (TDD)?
O GitHub Spec Kit é um toolkit experimental e de código aberto do GitHub que auxilia no desenvolvimento orientado por especificações (spec-driven development). Ele ajuda a estruturar e iniciar projetos de software, garantindo que a implementação siga um plano claro e bem definido, alavancando o poder de agentes de IA.
Visão Geral
O Spec Kit utiliza agentes de IA (como o GitHub Copilot) para gerar código a partir de uma série de artefatos que definem o projeto. O fluxo de trabalho é centrado em comandos que geram e refinam esses artefatos:
- Constituição (
/constitution): Princípios e regras não negociáveis do projeto. - Especificação (
/specify): O "quê" e o "porquê" do produto, sem detalhes técnicos. - Clarificação (
/clarify): Um passo opcional para refinar a especificação e evitar ambiguidades. - Plano (
/plan): Os detalhes técnicos da implementação (arquitetura, tecnologias). - Tarefas (
/tasks): O trabalho dividido em partes gerenciáveis para o agente de IA. - Análise (
/analyze): Um passo opcional para verificar a consistência entre os artefatos antes de codificar. - Implementação (
/implement): O comando final que instrui o agente a construir o software.
Instalação
A CLI specify é a porta de entrada para o Spec Kit.
Pré-requisitos
Para usar uvx, você precisa ter o uv instalado:
- Instale o
uv: Siga as instruções em github.com/astral-sh/uv - Requisito: Python 3.8 ou superior
Dentro da pasta do projeto, execute:
uvx --from git+https://github.com/github/spec-kit.git specify init --here
Download Manual
Como alternativa, você pode baixar os templates manualmente na página de releases do repositório, escolhendo o .zip para seu agente e sistema operacional, e extraindo-o na raiz do projeto.
Fluxo de Trabalho Detalhado
O fluxo de trabalho com o Spec Kit é projetado para ser iterativo e estruturado.
1. Inicie o Projeto (init)
Durante a configuração, você escolherá o agente de IA (copilot, gemini, etc.) e o tipo de script (PowerShell ou shell).
💡 Nota: O comando
init --hereinicializa o Spec Kit no diretório atual. Para criar um novo projeto em um diretório específico, consulte a documentação oficial.
2. Abra o Projeto no seu Editor
cd <nome-do-projeto>
code .
Importante: Certifique-se de que você está na pasta raiz do projeto para que os comandos (/specify, /plan, etc.) fiquem disponíveis no chat do seu editor.
3. Defina a Constituição (/constitution)
A constituição contém as regras fundamentais do seu projeto.
- Localização:
.specify/memory/constitution.md - Ação: Peça ao agente para preencher este arquivo com os princípios do seu projeto.
- Exemplo de Prompt:
Preencha a constituição com os requisitos mínimos para uma aplicação web estática, priorizando HTML, CSS e JS vanilla.
4. Crie a Especificação (/specify)
Descreve o produto do ponto de vista do usuário, focando no "o quê" e "porquê".
- Ação: Use o comando
/specifyno chat do seu editor para descrever o que você quer construir. - Exemplo de Prompt:
/specify estou construindo um site moderno para podcast. A página inicial deve ter um episódio em destaque, e o site deve conter também páginas de "Episódios", "Sobre" e "FAQ".
5. Refine a Especificação (/clarify)
Para evitar o problema de "sub-especificação" (deixar pontos importantes ambíguos), use o comando /clarify.
✅ Recomendado: Embora opcional, este passo evita ambiguidades e melhora significativamente a qualidade da implementação.
- Ação: Execute
/clarifyno chat. - O que acontece: O agente fará até 5 perguntas de múltipla escolha para esclarecer pontos ambíguos na especificação. Você pode responder com a letra da opção (ex:
A,B) ou com seu próprio texto. As respostas são automaticamente registradas no arquivo da especificação.
6. Elabore o Plano Técnico (/plan)
Define os detalhes técnicos da implementação.
- Ação: Use o comando
/planpara especificar as tecnologias. - Exemplo de Prompt:
/plan usar Next.js com configuração para site estático (SSG). Sem banco de dados. O site deve ser responsivo.
7. Gere as Tarefas (/tasks)
Quebra o trabalho em um checklist de implementação para o agente.
- Ação: Use o comando
/tasks. - Exemplo de Prompt:
/tasks detalhe o trabalho em tarefas.
8. Analise a Coerência (/analyze)
Antes de implementar, verifique se os artefatos (spec, plan, tasks) são consistentes entre si e com a constitution.
✅ Recomendado: Embora opcional, este passo identifica inconsistências antes da implementação, economizando tempo e evitando retrabalho.
- Ação: Execute
/analyzeno chat. - O que acontece: O agente analisará os arquivos e apontará discrepâncias, classificando-as por severidade (ex: "Crítica", "Média"). Isso ajuda a corrigir desalinhamentos antes que o código seja escrito, como um plano técnico que viola uma regra da constituição.
9. Implemente o Projeto (/implement)
O passo final, onde o agente de IA escreve o código.
- Ação: Use o comando
/implement. - Exemplo de Prompt:
Implemente as tarefas para este projeto e atualize a lista de tarefas conforme avança.
10. Construa e Execute
Após a finalização, construa e rode sua aplicação.
npm run build
npm run dev
Tópicos Avançados e Perguntas Frequentes (FAQ)
Como manter os artefatos (Spec, Plan, Tasks) atualizados?
- A Especificação (
spec) é a Fonte da Verdade: É o artefato mais durável. Se surgirem novos requisitos, atualize a especificação. Peça ao agente para "incorporar os aprendizados da nossa conversa na especificação". - O Plano (
plan) é Flexível: Atualize-o se os detalhes da implementação mudarem (ex: trocar um banco de dados). - As Tarefas (
tasks) são Descartáveis: Se o plano mudar, apague o arquivo de tarefas e gere-o novamente.
Como lidar com comportamento inesperado da IA?
Use o git a seu favor. O Spec Kit cria uma nova branch para cada /specify.
1. Atualize a Spec: Deixe claro o que você não quer.
2. Descarte as Mudanças: Use um cliente Git para reverter os arquivos indesejados.
3. Reimplemente: Peça ao agente para tentar novamente com a spec corrigida.
4. Commits Frequentes: Faça commits das mudanças que funcionam para criar pontos de verificação seguros.
É possível usar o Spec Kit em projetos existentes?
Sim. O maior desafio é fornecer contexto ao agente. Crie um arquivo context.md descrevendo a arquitetura e as convenções do projeto, ou simplesmente confie na capacidade do agente de analisar o código dinamicamente.
Como trabalhar com múltiplos repositórios (Monorepos)?
- Abordagem Recomendada: Uma instância do Spec Kit por repositório.
- Compartilhando Configurações: Use
git submodulespara compartilhar artefatos como umaconstitutionpadrão. - Futuro: A equipe do Spec Kit está trabalhando em uma solução mais robusta para monorepos.
E o Test-Driven Development (TDD)?
Os templates atuais são orientados a TDD. Uma opção "TDD-less" está sendo desenvolvida para permitir prototipagem mais rápida, sem a obrigatoriedade de escrever testes primeiro.