Hoe voorkom je dat neurale netwerken slechte Go-code schrijven
Iedereen die ooit Go-code heeft gegenereerd met Cursor, Claude Code of Copilot heeft waarschijnlijk hun specifieke eigenaardigheden ervaren. Neurale netwerken proberen hardnekkig Java-patronen naar Go te slepen, vergeten errors te wrappen met %w, negeren race conditions in goroutines en genereren monsterlijke structuren waar een eenvoudige functie zou volstaan.
De model elke keer handmatig prompten is een twijfelachtig genoegen. Je wilt de assistent één keer een goede set regels geven en vergeten over constante correcties in code review. Dat is precies waarom de Franse ontwikkelaar Samuel Berthe (auteur van de populaire samber/lo library) het cc-skills-golang project heeft gemaakt.

Wat zijn Agent Skills en waarom heb je ze nodig
Het Agent Skills-concept groeide uit een eenvoudig probleem: de systeemprompt van een neuraal netwerk is niet oneindig. Als je een gedetailleerde style guide, beveiligingsregels, database-operatiespecificaties en framework-functies in de context laadt, heeft het model simpelweg geen ruimte meer voor je eigen code. Reacties worden trager en de generatiekwaliteit gaat achteruit.
Skills lossen dit op door lazy loading. Het project is een verzameling kleine Markdown-bestanden. Aan het begin van een sessie wordt alleen een korte samenvatting van elke module (ongeveer 100 tokens per skill) geladen in het LLM-geheugen. Zodra je de assistent vraagt om "een benchmark te schrijven voor deze functie" of "foutafhandeling toe te voegen aan de gRPC-handler," ziet het model de matching trigger en laadt het gedetailleerde document met instructies specifiek voor die taak.
Geen AI-rommel
Het belangrijkste detail in de repository README is de eerlijke waarschuwing van de auteur: "Geen AI-rommel hier."
Tegenwoordig staat GitHub vol met automatisch gegenereerde kennisbanken die meer kwaad dan goed doen. Samuel deed dingen anders. Hij gebruikte Claude wel voor de initiële distillatie van regels uit zijn commits in echte Go-projecten, maar herschreef, bewerkte en testte vervolgens elke instructie handmatig.
De auteur voerde zelfs nauwkeurigheidsmetingen uit op een testsuite:
- Zonder instelbare skills voltooide het taalmodel testtaken 56% van de tijd correct.
- Met de regelset ingeschakeld steeg de score naar 98%.
Vooral sterke verbeteringen in nauwkeurigheid werden gezien bij specifieke onderwerpen: moderniseren van oude code voor nieuwe Go-functies (range-Over-int, iterators), benchmarks schrijven en foutafhandeling.
Wat zit er in de repository
Alle instructies zijn onderverdeeld in twee hoofdcategorieën: algemene taalregels en werken met specifieke bibliotheken.
Algemene taal- en architectuurregels
De modules dekken bijna de volledige Go-ontwikkelingscyclus:
- Codekwaliteit en stijl: naamgevingsconventies, veilige bewerkingen met
nilen slices, preventie van geheugenlekken, juiste documentatie engolangci-lintconfiguratie. - Architectuur en patronen: contextafhandeling, gelijktijdigheid zonder goroutine-lekken, ontwerpen van structuren en interfaces, refactoring-patronen via
gopls. - Testen en debuggen: table-driven tests, race-detectie, profiling via
pprof, OpenTelemetry-configuratie en metrics-verzameling. - Projectopzet: idiomatische directorystructuur (cmd/internal/pkg), CI/CD-pipelines en modulebeheer.
Ondersteuning voor populaire bibliotheken
Naast de taalstandaarden zelf bevat de repository regels voor het werken met populaire tooling:
- CLI en configs:
spf13/cobraenspf13/viper. - Dependency Injection:
google/wire,uber/dig,uber/fxen hun eigen containersamber/do. - Netwerkprotocollen: gRPC, GraphQL (
gqlgen) en OpenAPI/Swagger. - samber-ecosysteem: functionele helpers
samber/lo, monadensamber/mo, loggingsamber/slogen error chainingsamber/oops.
Een interessant punt: skills zijn ontworpen om elkaar niet te dupliceren. Als een foutafhandelingsregel logging raakt, wordt dit beschreven in de golang-error-handling module en verwijst de golang-observability module ernaar. Dit bespaart tokens.
Hoe te installeren
Het project ondersteunt vrijwel alle populaire tools die werken met het Agent Skills-standaard.
De meest universele manier is het skills hulpprogramma:
npx skills add https://github.com/samber/cc-skills-golang --all
Als je in Cursor werkt, clone je simpelweg de repository naar de skills-folder:
git clone https://github.com/samber/cc-skills-golang.git ~/.cursor/skills/cc-skills-golang
Voor Claude Code wordt de installatie gedaan met de standaard plugin-opdracht:
/plugin marketplace add samber/cc
/plugin install cc-skills-golang@samber
Copilot, Gemini CLI, OpenCode en OpenAI's Codex worden op dezelfde manier ondersteund.
Gebruik op CI voor auto-review
Een interessant gebruiksscenario dat de auteur beschrijft is het draaien van AI-agents als reviewers op GitHub Actions.
Regelmatige linters zijn geweldig in het vangen van formatting of ongebruikte variabelen. Ze zijn echter machteloos als een neuraal netwerk tijdens refactoring rustig de architecturale samenhang verbreekt of de context vergeet te annuleren bij het verlaten van een functie. Een agent die via deze skill-set is verbonden met de PR controleert de code specifiek op Go-idioma-compliance en markeert architectuurproblemen voordat de PR je collega's bereikt.
Is het de moeite waard om te proberen
Als je actief neurale netwerken gebruikt in Go-ontwikkeling en het beu bent om triviale fouten voor ze te corrigeren, is het zeker de moeite waard om deze set te installeren. Het zal AI niet transformeren tot een senior architect, maar het zal significant het aantal slordige typefouten en niet-idiomatische code verminderen.
Het is vooral prettig dat het project niet probeert de context te overbelasten en de mogelijkheid behoudt om elke skill te overschrijven met de regels van je bedrijf. Maak simpelweg je eigen interne module en geef aan dat deze voorrang krijgt op de standaard.
Gerelateerde projecten