Before You Refactor

Eine Checkliste vor dem Refactoring, die ungetestetes Verhalten erfasst, bevor Sie Code 'bereinigen'.

von oribarilan · oribarilan/97

Getestet · Funktioniert ★ 10.0/10

Before You Refactor — Eine Checkliste vor dem Refactoring, die ungetestetes Verhalten erfasst, bevor Sie Code 'bereinigen'.

Was es kann

Eine starre Checkliste vor dem Refactoring: Lesen Sie den vorhandenen Code zweimal, finden und führen Sie die Tests aus, die ihn bereits abdecken, geben Sie ein Ein-Satz-Ziel an und fügen Sie einen Charakterisierungstest für jedes Verhalten hinzu, das die aktuelle Suite nicht festlegt, bevor Sie die Form des Codes ändern. Löst bei Refactorings, Restrukturierungen, dateiübergreifenden Umbenennungen oder der Überprüfung eines Restrukturierungs-PR aus; löst explizit nicht bei Ein-Zeilen-Fehlerbehebungen, neuen Dateien oder rein formatierungsbedingten Änderungen aus.

Testbericht

Seine Checkliste erfasste eine echte Regression, die ein naiver Refactoring einführt: Ein archivierter Datensatz beanspruchte stillschweigend seine Deduplizierungs-ID, sodass ein späteres aktives Duplikat gelöscht wurde – die naive Umschreibung bestand trotzdem alle 5 vorhandenen Tests und brach nur bei einem Fall, den keiner von ihnen abdeckte; der Schritt des Skills, einen Charakterisierungstest für ungetestetes Verhalten hinzuzufügen, erfasste dies, bevor die Bearbeitung landete.

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

Installation

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

Befehle & Beispiel-Prompts

  • /before-you-refactorEine Checkliste vor dem Refactoring, die ungetestetes Verhalten erfasst, bevor Sie Code 'bereinigen'.

Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):

  • 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