Estudo de caso
CV Craft
Uma ferramenta de linha de comando em Go que gera o currículo em PDF, Markdown e texto a partir de um único arquivo YAML, otimizado para os sistemas de triagem (ATS). Saiu de protótipo para a v1.0.0, e foi o projeto em que nasceu o sdd-kit.
- 71 critérios de aceite, todos com teste
- 94% de cobertura de testes
- 3 formatos a partir de um YAML: PDF, Markdown e texto
Números da v1.0.0, medidos em 14/10/2026. Tudo pode ser conferido no repositório público.
Ver o repositório →Ler a documentação →Baixar as releases →
$ cv-craft init
Criado: curriculum.yaml
Edite o arquivo e gere o currículo com: cv-craft build curriculum.yaml
$ cv-craft build curriculum.yaml --format all -o dist/
Gerado: dist/curriculum.pdf (43.3 KB)
Gerado: dist/curriculum.md (1.1 KB)
Gerado: dist/curriculum.txt (1.0 KB)
$ cv-craft validate ruim.yaml
erro: ruim.yaml tem 6 problema(s):
- contact.name: campo obrigatório
- contact.email: e-mail inválido "nao-e-email"
- professional_title: campo obrigatório
- skills: informe pelo menos uma categoria de habilidades
- experience: informe pelo menos uma experiência
- education: informe pelo menos uma formaçãoO problema
Manter o currículo em vários formatos (o PDF para o recrutador, o texto para colar em formulários, o Markdown para o GitHub) é retrabalho e acaba em versões diferentes. Um PDF com colunas, tabelas ou imagens é lido mal pelos sistemas de triagem. E os geradores online pedem cadastro e enviam os seus dados para fora.
A solução
Um binário único em Go: o conteúdo fica num YAML versionável, e a ferramenta gera todos os formatos com o mesmo conteúdo, sem enviar nada para a internet.
- O comando init cria um modelo comentado; o validate lista todos os problemas de uma vez, cada um com o campo e o motivo.
- PDF feito para ATS: coluna única, texto selecionável, títulos de seção padronizados e metadados (título, autor, palavras-chave).
- Acentos corretos em todos os formatos e títulos das seções em português ou inglês.
- Um JSON Schema dá autocompletar e validação no editor; há modo interativo e geração automática ao salvar (--watch).
- Exit codes documentados, para uso em scripts; instaladores para Windows, macOS e Linux que conferem o checksum.
Do protótipo à v1.0.0
O código estava parado como protótipo. A primeira etapa foi uma descoberta com evidências: ler o código, rodar cada comando do README e registrar cada achado com o arquivo, a linha ou a saída que o mostrava. Foram 22 achados, 5 deles críticos: acentos corrompidos no PDF, responsabilidades e conquistas perdidas no Markdown e no texto, um laço infinito no modo interativo e um comando de instalação do README que não funcionava.
Nenhuma linha de código mudou antes das decisões do dono. Depois, cada achado virou critério de aceite numa spec, e cada critério, um teste.
Como a qualidade é garantida
- 10 especificações e 71 critérios de aceite, todos provados por testes automatizados.
- 76 funções de teste e de benchmark, mais 9 arquivos com a saída esperada de cada formato, comparados a cada mudança.
- CI em Linux, macOS e Windows, na versão mínima e na estável do Go, com lint, detecção de condição de corrida, cobertura mínima e um teste de fumaça do binário.
- Os comandos dos READMEs rodam no CI, para a documentação nunca prometer o que a ferramenta não faz.
- Releases com binários e checksums, publicadas só depois do CI completo.
Resultado
A v1.0.0 está publicada, com documentação para iniciantes em português e inglês. O processo usado aqui (descoberta com evidências, decisões do dono, uma spec por área e um pull request por tarefa) virou o sdd-kit, que hoje conduz meus outros projetos.
Limites
É uma ferramenta de linha de comando: não há editor visual nem versão web. O uso real até agora é o meu; falta o retorno de outros usuários.
Precisa de alguém que entregue assim?
Trabalho com QA e desenvolvimento: especificação, testes automatizados, CI e entrega até produção, com documentação para quem vai usar.
Fale comigo →