Before You Refactor

Una checklist pre-refactoring che cattura comportamenti non testati prima di 'pulire' il codice.

di oribarilan · oribarilan/97

Promosso ★ 10.0/10

Before You Refactor — Una checklist pre-refactoring che cattura comportamenti non testati prima di 'pulire' il codice.

Cosa fa

Una rigida checklist pre-refactoring: leggere il codice esistente due volte, trovare ed eseguire i test che già lo coprono, dichiarare un obiettivo di una frase e aggiungere un test di caratterizzazione per qualsiasi comportamento che la suite attuale non blocca prima di cambiare la forma del codice. Si attiva con refactoring, ristrutturazioni, ridenominazioni cross-file o revisione di un PR di ristrutturazione; esplicitamente non si attiva con correzioni di bug di una riga, nuovi file o modifiche solo di formattazione.

Rapporto di test

La sua checklist ha catturato una regressione reale introdotta da un refactoring ingenuo: un record archiviato che 'rivendicava' silenziosamente il suo ID di deduplicazione in modo che un duplicato attivo successivo venisse eliminato — la riscrittura ingenua ha superato tutti i 5 test esistenti ed è fallita solo su un caso che nessuno di essi copriva; il passaggio della skill per aggiungere un test di caratterizzazione per il comportamento non testato lo ha catturato prima che la modifica venisse applicata.

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

Installazione

git clone https://github.com/oribarilan/97
mkdir -p ~/.claude/skills
cp -r 97/skills/before-you-refactor ~/.claude/skills/before-you-refactor

Comandi e prompt di esempio

  • /before-you-refactorUna checklist pre-refactoring che cattura comportamenti non testati prima di 'pulire' il codice.

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • before I restructure this module, what tests actually cover it?
  • I'm about to rename these files across the codebase, what's the risk?
  • add a characterization test before I clean up this function's shape