Before You Refactor

Une checklist pré-refactorisation qui capture le comportement non testé avant de 'nettoyer' le code.

par oribarilan · oribarilan/97

Testé · Fonctionne ★ 10.0/10

Before You Refactor — Une checklist pré-refactorisation qui capture le comportement non testé avant de 'nettoyer' le code.

Ce que fait

Une checklist rigide pré-refactorisation : lire le code existant deux fois, trouver et exécuter les tests qui le couvrent déjà, énoncer un objectif en une phrase, et ajouter un test de caractérisation pour tout comportement que la suite actuelle ne fixe pas avant de changer la forme du code. Se déclenche sur les refactorisations, restructurations, renommages inter-fichiers, ou la revue d'une PR de restructuration ; ne se déclenche explicitement pas sur les corrections de bugs d'une seule ligne, les nouveaux fichiers, ou les changements uniquement de formatage.

Rapport de test

Sa checklist a attrapé une vraie régression introduite par une refactorisation naïve : un enregistrement archivé 'revendiquant' silencieusement son ID de déduplication afin qu'un doublon actif ultérieur soit supprimé — la réécriture naïve a passé les 5 tests existants et n'a échoué que sur un cas qu'aucun d'eux ne couvrait ; l'étape de la compétence pour ajouter un test de caractérisation pour le comportement non testé l'a attrapé avant que la modification ne soit appliquée.

Testé le: 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

Commandes et exemples de prompts

  • /before-you-refactorUne checklist pré-refactorisation qui capture le comportement non testé avant de 'nettoyer' le code.

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • 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