Pitch: Criei QA Gates pra rodar no seu rep vibecodado
Passando aqui pra compartilhar um repositório que particularmente eu acredito, fiz um teste de um framework que criei e funcionou muito bem, e achei tão bom e tão chato que estou aqui passando pra compartilhar com vocês e coletar feedback também.
Basicamente o que eu fiz é o dever de casa que todo dev deveria fazer, mas na prática não é o que fazemos, muitas vezes não temos paciência em aplicar git hooks e técnicas de CI e CD, então basicamente fiz um rep onde você pode instalar gates de QA (Quality Assurance) na seu projeto e pronto.
Esse trabalho resolve isso de algumas maneiras:
- System prompts, o mínimo.
- Git hooks: executa scripts de validação localmente, pra verificar segredos e complexidade de código.
- Github Actions:
-
- QA structural gates: duplicação de código, complexidade assintótica limitada, hardcoded secrets.
-
- Megalinter.
-
- Testes de unidade automatizados.
A grande ideia é não confiar na IA pra garantir qualidade, e sim usar indicadores estáticos de qualidade, assim o commit só sobe se seguir um padrão semantico de nome e passar nos testes locais, a PR só aprova se a complexidade ciclomática estiver abaixo de 10, se o arquivo tiver menos de 300 linhas, e se não tiverem mais de 6 funções em um mesmo arquivo.
É claro que todos esses indicadores são adaptáveis a cada projeto, mas essa é uma maneira aceitável de garantir o mínimo. Isso torna o trabalho revisável e melhora muito a manutenção do código. Você basicamente força a IA a não ser relaxada (e ela tenta).
Por fim, esse rep não resolve qualidade sozinho, mas te ajuda com o mínimo, ter prompts forçando a tua IA a não escrever código que não responde as tuas regras de negócio e forçando a ter o mínimo de padrões código limpo.
Obs: como disse, precisa ainda garantir que o código atende as regras de negócio que você tem, e isso é trabalho só seu. E lançar esse rep em um projeto já em andandamento pode te levar a um ciclo de refatoração infindável, por isso veja quais gates fazem sentido serem ativados no seu projeto.
Aqui o link: https://github.com/PedroOSilv/qagates
Quero ouvir de vocês o que pensam disso.
Salve Lucas Montano, seu vídeo me inspirou a fazer esse projeto ...
Se você leu até aqui, obrigado pela atenção!