Go Control Structures

Zachytává klasické Go 'footguns' range/break/defer-in-loop během revize kódu.

od v0lka · v0lka/skills

Otestováno · Funguje ★ 8.8/10

Go Control Structures — Zachytává klasické Go 'footguns' range/break/defer-in-loop během revize kódu.

Co umí

Referenční kontrolní seznam pro čtyři opakující se chyby řízení toku v Go: mutace kopií cyklu range místo originálu, ukládání ukazatele na proměnnou range (všechny položky nakonec ukazují na poslední prvek), break pouze ukončující nejvnitřnější switch/select místo cyklu a defer uvnitř cyklu, který se nespustí, dokud se funkce nevrátí. Spouští se při psaní nebo revizi kódu Go, který iteruje přes slice/array/map/channel, používá break uvnitř switch/select vnořeného v cyklu, nebo umisťuje defer uvnitř těla cyklu.

Testovací report

Zkontroloval jsem soubor Go se 3 chybami (past rozsahu-ukazatele, únik defer-v-cyklu, break-pouze-ukončuje-switch) s dovedností i bez ní: oba průchody zachytily všechny 3 chyby, ale průchod řízený dovedností pojmenoval každou past podle její kanonické kategorie a explicitně potvrdil absenci dalších dvou kategorií pravidel (mutace kopie rozsahu, nebezpečí iterace map) — záruka úplnosti ve stylu kontrolního seznamu, kterou volná základní revize nenabídla.

Testováno: 2026-07-16 · Claude Code 2.x (agent harness)

Instalace

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

Příkazy a ukázkové prompty

  • /go-control-structuresZachytává klasické Go 'footguns' range/break/defer-in-loop během revize kódu.

Skilly se spouštějí běžnými požadavky — žádné příkazy k zapamatování. Po instalaci ho aktivují prompty jako tyto (anglicky):

  • 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