Go Control Structures
Wyłapuje klasyczne pułapki range/break/defer-in-loop w Go podczas przeglądu kodu.
Testowano · Działa
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 bugsDoes this break statement actually exit the loop or just the switch?Check my Go function for classic loop and defer footguns before I ship