estou fazendo um projeto de cli chamado duck, ele tem uma proposta de engenharia bem parecida com o seu projeto, a proposta é identificar padrões de design de código e criar artefatos/contratos para quando você for usar agentes para codar (vulgo vibe coding) o seu agente seja ele claude code, copilot etc, siga os padrões de código já definidos no projeto, assim forçando seu agente a não desviar do padrão de arquitetura usado na sua codebase. Ele tem um fluxo de pipeline onde ele recebe um diretório -> scann dos arquivos (tem que ser ts, js, jsx/tsx ignorando node_modules etc) -> file loader (lê o conteudo do arquivo e tamanho maximo) -> ast analyze (analisa ast do diretório e extrai informações importantes tipo imports, dependencias entre classes e func, layers, controllers, services etc) -> IR (modelo intermediário em formato json com as informações de padrão de código para um LLM analisar) -> LLM (LLM analisa modelo IR e define os padrões de arquitetura usado no código). Após esse processo vai ser gerado dois arquivos, um .md com linguagem natural para humanos lerem e terem um entendimento melhor do projeto e seus padrões e um em formato json para agentes de código usarem como contrato com todas as definições e padrão de código identificados e a serem seguidos pela a IA que está codando.
A inicio a ideia do projeto é identificar e definir padrões para quem esteja participando do projeto e segui-los (seja agente de ia ou humano). Estou usando a ideia de usar IA apenas como ferramenta de engenharia e nada de ficar jogando prompt e rezar igual vc citou kkkkkkkkk
Em resposta a Cansei de IA que pensa por mim — então criei o AkitaLLM
2
1
Muito massa o duck. A proposta é bem alinhada com a do AkitaLLM: IA como ferramenta de engenharia, não “prompt e fé”.
Usar AST → IR como contrato explícito de arquitetura é uma ótima forma de evitar deriva quando entra agente ou dev novo. Resolve bem o problema do vibe coding saindo do padrão da codebase.
No AkitaLLM o foco é mais no processo (pipeline rígido, diffs, rollback, validação) do que em extrair padrões, mas são camadas bem complementares. Dá pra imaginar fácil o JSON do duck entrando como constraint dentro do fluxo do AkitaLLM.
E +1: LLM com contrato claro > autocomplete bonito gerando dívida técnica 😅