Como Impedir Redes Neurais de Escreverem Código Go Ruim
Qualquer pessoa que tentou gerar código Go através do Cursor, Claude Code ou Copilot provavelmente encontrou suas peculiaridades específicas. Redes neurais insistem em arrastar padrões Java para o Go, esquecem de empacotar erros com %w, ignoram condições de corrida em goroutines e geram estruturas monstruosas onde uma função simples seria suficiente.
Promptar manualmente o modelo toda vez é um prazer duvidoso. Você quer dar ao assistente um conjunto adequado de regras uma vez e esquecer as correções constantes na revisão de código. É exatamente por isso que o desenvolvedor francês Samuel Berthe (autor da biblioteca popular samber/lo) criou o projeto cc-skills-golang.

O Que São Agent Skills e Por Que Você Precisa Delas
O conceito de Agent Skills surgiu de um problema simples: o prompt de sistema de uma rede neural não é infinito. Se você carrega um guia de estilo detalhado, regras de segurança, especificidades de operações de banco de dados e funcionalidades de frameworks no contexto, simplesmente não haverá espaço restante para o seu código real. As respostas ficarão mais lentas e a qualidade da geração diminuirá.
As skills resolvem isso através de carregamento preguiçoso. O projeto é uma coleção de pequenos arquivos Markdown. No início de uma sessão, apenas um resumo breve de cada módulo (cerca de 100 tokens por skill) é carregado na memória do LLM. Assim que você pede ao assistente para "escrever um benchmark para esta função" ou "adicionar tratamento de erros ao handler gRPC", o modelo vê o gatilho correspondente e carrega o documento detalhado com instruções especificamente para aquela tarefa.
Sem Lixo de IA
O detalhe principal no README do repositório é o aviso honesto do autor: "Sem lixo de IA aqui."
Hoje, o GitHub está inundado de bases de conhecimento geradas automaticamente que fazem mais mal do que bem. Samuel fez as coisas de forma diferente. Ele usou Claude para a destilação inicial das regras dos seus commits em projetos Go reais, mas depois reescreveu, editou e testou manualmente cada instrução.
O autor até realizou medições de precisão em um conjunto de testes:
- Sem skills plugáveis, o modelo de linguagem completou corretamente as tarefas de teste 56% das vezes.
- Com o conjunto de regras ativado, a pontuação subiu para 98%.
Melhorias especialmente fortes na precisão foram vistas em tópicos específicos: modernização de código antigo para novos recursos do Go (range-over-int, iteradores), escrita de benchmarks e tratamento de erros.
O Que Está Dentro do Repositório
Todas as instruções são divididas em duas categorias principais: regras gerais da linguagem e trabalho com bibliotecas específicas.
Regras Gerais de Linguagem e Arquitetura
Os módulos cobrem quase todo o ciclo de desenvolvimento Go:
- Qualidade e estilo de código: convenções de nomenclatura, operações seguras com
nile slices, prevenção de vazamentos de memória, documentação adequada e configuração degolangci-lint. - Arquitetura e padrões: manipulação de context, concorrência sem vazamentos de goroutine, design de estruturas e interfaces, padrões de refatoração através de
gopls. - Testes e depuração: testes table-driven, detecção de race conditions, profiling através de
pprof, configuração de OpenTelemetry e coleta de métricas. - Configuração de projeto: estrutura de diretórios idiomática (cmd/internal/pkg), pipelines CI/CD e gerenciamento de módulos.
Suporte a Bibliotecas Populares
Além dos padrões da linguagem em si, o repositório incorpora regras para trabalhar com ferramentas comuns:
- CLI e configurações:
spf13/cobraespf13/viper. - Injeção de Dependência:
google/wire,uber/dig,uber/fxe o próprio containersamber/do. - Protocolos de rede: gRPC, GraphQL (
gqlgen) e OpenAPI/Swagger. - Ecossistema samber: helpers funcionais
samber/lo, mônadassamber/mo, loggingsamber/sloge encadeamento de errossamber/oops.
Um ponto interessante: as skills são projetadas para não se duplicarem. Se uma regra de tratamento de erros afeta logging, ela é descrita no módulo golang-error-handling, e o módulo golang-observability simplesmente faz referência a ela. Isso economiza tokens.
Como Instalar
O projeto suporta quase todas as ferramentas populares que funcionam com o padrão Agent Skills.
A forma mais universal é o utilitário skills:
npx skills add https://github.com/samber/cc-skills-golang --all
Se você trabalha no Cursor, basta clonar o repositório na pasta de skills:
git clone https://github.com/samber/cc-skills-golang.git ~/.cursor/skills/cc-skills-golang
Para o Claude Code, a instalação é feita com o comando padrão do plugin:
/plugin marketplace add samber/cc
/plugin install cc-skills-golang@samber
Copilot, Gemini CLI, OpenCode e Codex da OpenAI são suportados da mesma forma.
Usando no CI para Auto-Revisão
Um caso de uso interessante descrito pelo autor é executar agentes de IA como revisores no GitHub Actions.
Linters regulares são ótimos para capturar formatação ou variáveis não utilizadas. No entanto, são inúteis se uma rede neural silenciosamente quebra a coesão arquitetural durante uma refatoração ou esquece de cancelar o context ao sair de uma função. Um agente conectado ao PR com este conjunto de skills verifica o código especificamente para conformidade com o idiom do Go e destaca problemas arquiteturais antes que o PR chegue aos seus colegas.
Vale a Pena Experimentar
Se você usa ativamente redes neurais no desenvolvimento Go e está cansado de corrigir erros triviais para elas, instalar este conjunto definitivamente vale a pena. Ele não vai transformar a IA em um arquiteto sênior, mas reduzirá significativamente o número de erros de digitação bobos e código não idiomático.
É especialmente bom que o projeto não tente sobrecarregar o contexto e deixe a capacidade de sobrescrever qualquer skill com as regras da sua empresa. Basta criar seu próprio módulo interno e especificar que ele tem prioridade sobre o padrão.
Projetos relacionados