Communitygithub.com

netresearch/go-development-skill

Agent-Fähigkeit: Enterprise Go-Entwicklungsmuster – belastbare Dienste, Tests | Kompatibel mit Claude Code

Was ist go-development-skill?

Diese Fähigkeit bietet eine umfassende Sammlung von Go-Entwicklungsmustern für Unternehmensanwendungen, die auf Type Safety, Konsistenz, solides Testen und Konventionen ausgerichtet ist. Sie ist mit Claude Code kompatibel und stellt sicher, dass KI-Agenten konsistent und sicherheitsbewusst Go-Code generieren, prüfen und refaktorieren. Die Fähigkeit definiert Kernprinzipien wie die Vermeidung von `interface{}` zugunsten von Generics, die Verwendung von Build-Tags zur Isolation von Teststufen und die Einhaltung konsistenter Fehlerbehandlungs- und Namenskonventionen. Sie enthält eine umfangreiche Referenzbibliothek mit detaillierten Richtlinien zu Architektur, Logging, Resilienz, API-Design, Fuzz-Testing und mehr. Vor Abschluss einer Überprüfung werden obligatorische Qualitäts-Gates wie Linting, statische Analyse, Sicherheitsscans und Race-Erkennung ausgeführt. Außerdem wird die Behebung von Schwachstellen in der Standardbibliothek durch Aktualisierung der Go-Version in der `go.mod` behandelt.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add netresearch/go-development-skill

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Go-Entwicklungsmuster

Erforderlicher Arbeitsablauf

Für Überprüfungen verwandte Fähigkeiten einbeziehen: security-audit (OWASP), enterprise-readiness (OpenSSF/SLSA), github-project (Branch-Schutz). Alle sind erforderlich.

Kernprinzipien

Typsicherheit

  • Vermeiden: interface{} (verwende any), sync.Map, verstreute Typ-Assertions, Reflektion
  • Bevorzugen: Generics [T any], errors.AsType[T] (Go 1.26), konkrete Typen
  • Führe go fix ./... nach Upgrades aus

Konsistenz

  • Ein Muster pro Problemdomäne
  • An vorhandene Codebase-Muster anpassen
  • Entweder ganzheitlich refaktorieren oder gar nicht
  • Konfigurationspriorität: Standardwerte < Konfigurationsdatei < Umgebungsvariablen < Flags

Testen

  • Build-Tags isolieren Teststufen: Unit (Standard), integration, e2e
  • Immer t.Parallel(), t.Helper(), tabellengesteuerte Subtests verwenden
  • log/slog direkt verwenden – niemals in benutzerdefinierten Logger-Interfaces kapseln

Konventionen

  • Fehler: Kleinbuchstaben, keine Satzzeichen (errors.New("ungültige Eingabe"))
  • Benennung: ID, URL, HTTP (nicht Id, Url, Http)
  • Fehlerweitergabe: fmt.Errorf("Fehler bei Verarbeitung: %w", err)

Referenzen

Git-Hooks: ls lefthook.yml 2>/dev/null && lefthook install || echo "Füge lefthook hinzu – siehe references/lefthook-template.md"

Nach Bedarf laden:

ReferenzZweck
references/architecture.mdPaketstruktur, Konfigurationsverwaltung, Middleware-Ketten
references/logging.mdStrukturiertes Logging mit log/slog, Migration von logrus
references/cron-scheduling.mdgo-cron-Muster: benannte Jobs, Laufzeit-Updates, Kontext, Resilienz
references/resilience.mdWiederholungslogik, Graceful Shutdown, Kontextweitergabe
references/docker.mdDocker-Client-Muster, Buffer-Pooling
references/ldap.mdLDAP/Active Directory-Integration
references/testing.mdTeststrategien, Build-Tags, tabellengesteuerte Tests
references/linting.mdgolangci-lint v2, staticcheck, Codequalität
references/api-design.mdBitmask-Optionen, funktionale Optionen, Builder
references/fuzz-testing.mdGo-Fuzzing-Muster, Sicherheitsseeds
references/contracts-and-invariants.mdVerträge, Invarianten, Property-Tests
references/mutation-testing.mdGremlins-Konfiguration, Testqualitätsmessung
references/makefile.mdStandard-Makefile-Schnittstelle für CI/CD
references/modernization.mdGo 1.26-Modernisierer, go fix, errors.AsType[T], wg.Go()
references/lefthook-template.mdFertig nutzbare lefthook.yml für Go-Projekt-Git-Hooks
references/reusable-workflows.mdWiederverwendbare Actions-Workflow-Aufrufer, Berechtigungsweitergabe, Release-Gate-Ausgaben
references/single-build-release.mdSingle-Build-Release: einmal cross-kompilieren, für Release+Container wiederverwenden
references/awesome-go-submission.mdawesome-go-Einreichung: CI-geparster PR-Text, Eintragsformat, Namenskollisionen

Qualitäts-Gates

Vor Abschluss einer Überprüfung ausführen:

golangci-lint run --timeout 5m    # Linting
go vet ./...                       # Statische Analyse
staticcheck ./...                  # Zusätzliche Prüfungen
govulncheck ./...                  # Sicherheitsscan
go test -race ./...                # Race-Erkennung

Behebung von Standardbibliothek-Schwachstellen

Wenn govulncheck Schwachstellen in der Standardbibliothek meldet: Fix-Version über vuln.go.dev prüfen, go X.Y.Z in go.mod aktualisieren, go mod tidy ausführen. PR-Branches für Repos mit Branch-Schutz verwenden.


Mitwirken: Verbesserungen einreichen unter https://github.com/netresearch/go-development-skill

Verwandte Skills