Habr AI→ original

Spec Kit em Full-Stack Real: Como 17 Sprints Levaram o Rastreador de Hábitos para Produção

Spec-Driven Development foi testado não em um MVP, mas em um ciclo completo de desenvolvimento full-stack: 17 sprints, dois repositórios, 328 testes e…

Processado por IA de Habr AI; editado por Hamidun News
Spec Kit em Full-Stack Real: Como 17 Sprints Levaram o Rastreador de Hábitos para Produção
Fonte: Habr AI. Colagem: Hamidun News.
◐ Ouvir artigo

Spec-Driven Development conseguiu chegar não a uma demo de uma noite, mas a um lançamento full-stack completo. O caso LifeSync descreve 17 sprints de desenvolvimento de um rastreador de hábitos e metas, dois repositórios separados, centenas de testes e um lançamento em produção — e leva à conclusão principal: em larga escala, SDD é valioso não pela velocidade de geração de código, mas por impedir a perda de controle quando backend, frontend e infraestrutura começam a puxar o projeto em direções diferentes. O estudo de caso usa um serviço B2C para hábitos e metas como exemplo.

O backend é construído em Spring Boot 3.5 e Java 21, organizado usando arquitetura hexagonal em seis módulos Maven, usa jOOQ em vez de JPA, Kafka para lógica orientada a eventos, JWT RS256 e OpenAPI 3.1 como contrato de API principal.

O frontend é construído em React 19, TypeScript 5.9, Vite 8, TanStack React Query, Zustand e shadcn/ui com Tailwind CSS. Ao longo de 17 sprints, o projeto cresceu para 251 testes no lado do servidor e 77 testes no lado do cliente, recebeu 19 migrações Liquibase e foi lançado em produção: backend implantado no Railway, frontend no Vercel.

O insight central do caso é que a escala exigiu uma disciplina diferente ao trabalhar com IA. Se um pequeno projeto pudesse se contentar com um chat pensante e um ambiente de execução, o autor chegou a um esquema de três chats para o projeto full-stack. Um contexto separado é necessário para backend, um separado para frontend, e outro para coordenar decisões comuns que afetam ambos os repositórios: implantação, recursos transversais, mudanças de API e retrospectivas.

Isso é complementado por dois arquivos de constituição diferentes. Para backend, o documento cresceu ao longo do tempo de um template para 437 linhas e incorporou regras sobre migrações, commits, estilo e OpenAPI. Para frontend, a constituição era muito mais compacta — 137 linhas, porque o stack e os padrões foram mais rigidamente definidos desde o início.

Ênfase especial é colocada no comando speckit.analyze, que o autor usa como um loop de feedback obrigatório após cada sprint. Ele não substitui os testes e não pretende ser um linter, mas reconcilia entre spec.

md, plan.md, tasks.md e a implementação real.

De acordo com o autor, exatamente este tipo de análise ajudou a detectar um problema crítico no sprint Kafka do backend: a publicação de eventos em múltiplos casos de uso estava acontecendo dentro de uma transação sem um try-catch protetor. No ambiente de teste, o erro não se manifestou porque Kafka nos containers estava sempre disponível, mas em uma falha real poderia ter revertido dados já salvos e deixado o sistema em estado inconsistente. Após análise, proteção foi adicionada ao código, a lógica de retry foi melhorada e as verificações de integração foram expandidas.

Outro pilar importante é a abordagem API-first como contrato entre os dois repositórios. No projeto, um módulo separado é alocado para isso com uma especificação OpenAPI de aproximadamente 2.669 linhas e 32 endpoints.

O backend gera interfaces de controladores Java a partir dela, e o frontend usa o mesmo YAML como a única fonte de verdade e mantém manualmente tipos TypeScript para cenários reais de UI. O autor observa especificamente que speckit.analyze não pode validar automaticamente a consistência entre dois repositórios, portanto as verificações entre repositórios ainda precisam ser feitas manualmente através do contexto de coordenação.

Mas mesmo nesta forma, o esquema reduz o risco de dessincronização silenciosa entre servidor e interface: se a API muda, é primeiro registrada na especificação e depois aparece no estágio de geração de interface ou compilação do frontend. A conclusão prática deste caso é bastante rigorosa: SDD escala, mas apenas se você o tratar como um sistema de gestão de mudanças, não como uma maneira de pedir a IA para escrever uma feature. Em tarefas curtas você pode não notar a diferença, mas ao longo de dezenas de sprints, os elementos entediantes do processo começam a se pagar — constituições vivas, contextos separados, artefatos formais e verificações regulares de sua consistência.

O caso é interessante porque mostra SDD não em um MVP de brinquedo, mas em um projeto que já tem produção, um loop de teste, repositórios separados e custo real de erros arquiteturais e de contrato.

ZK
Hamidun News
Notícias de AI sem ruído. Seleção editorial diária de mais de 400 fontes. Produto de Zhemal Khamidun, Head of AI na Alpina Digital.

Quer parar de ler sobre IA e começar a usar?

AI News é um feed curado de notícias de IA. A Hamidun Academy ensina você a usar IA no trabalho.

O que você acha?
Carregando comentários…