Go Control Structures

Wyłapuje klasyczne pułapki range/break/defer-in-loop w Go podczas przeglądu kodu.

Autor: v0lka · v0lka/skills

Testowano · Działa ★ 8.8/10

Go Control Structures — Wyłapuje klasyczne pułapki range/break/defer-in-loop w Go podczas przeglądu kodu.

Co robi ten skill

Lista kontrolna referencyjna dla czterech powtarzających się błędów przepływu sterowania w Go: modyfikowanie kopii pętli range zamiast oryginału, przechowywanie wskaźnika do zmiennej range (wszystkie wpisy ostatecznie wskazują na ostatni element), break wychodzący tylko z najbardziej wewnętrznego switch/select zamiast z pętli, oraz defer wewnątrz pętli nieuruchamiający się do momentu powrotu funkcji. Wyzwalane podczas pisania lub przeglądania kodu Go, który iteruje po slice/array/map/channel, używa break wewnątrz switch/select zagnieżdżonego w pętli, lub umieszcza defer wewnątrz ciała pętli.

Raport z testu

Przeglądano plik Go z 3 błędami (pułapka wskaźnika range, wyciek defer-in-loop, break-only-exits-switch) zarówno z umiejętnością, jak i bez niej: oba przejścia wykryły wszystkie 3 błędy, ale przejście prowadzone przez umiejętność nazwało każdą pułapkę według jej kanonicznej kategorii i wyraźnie potwierdziło brak pozostałych dwóch kategorii reguł (mutacja kopii range, zagrożenia iteracji map) -- gwarancja kompletności w stylu listy kontrolnej, której nie oferował swobodny przegląd bazowy.

Testowano: 2026-07-16 · Claude Code 2.x (agent harness)

Instalacja

git clone https://github.com/v0lka/skills
mkdir -p ~/.claude/skills
cp -r skills/development/idiomatic-go/go-control-structures ~/.claude/skills/go-control-structures

Komendy i przykładowe prompty

  • /go-control-structuresWyłapuje klasyczne pułapki range/break/defer-in-loop w Go podczas przeglądu kodu.

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

  • Review this Go code for range-variable capture and defer-in-loop bugs
  • Does this break statement actually exit the loop or just the switch?
  • Check my Go function for classic loop and defer footguns before I ship