Migrate to Shoehorn (Matt Pocock skill)
Migre les fichiers de test des assertions `as` vers @total-typescript/shoehorn, la lib de Matt Pocock qui laisse passer des données partielles sans fâcher TypeScript. Trois substitutions : `as Type` devient fromPartial(), `as unknown as Type` devient fromAny() qui garde l'autocomplétion sur des données volontairement fausses, et fromExact() force l'objet complet quand tu veux le figer. Consigne stricte : code de test uniquement, jamais en production. Attention au périmètre de distribution : cette skill vit dans skills/misc/, un dossier que le plugin.json ne déclare pas, donc `claude plugins install mattpocock-skills` ne l'installe PAS. Elle ne s'obtient que par l'installeur skills.sh (`npx skills@latest add mattpocock/skills`), qui copie les fichiers dans ton repo.
Forces
- Tableau explicite des trois helpers par intention : donnée partielle, donnée volontairement fausse, objet complet figé
- fromAny() conserve l'autocomplétion là où `as unknown as` la détruisait complètement
- Interdit explicitement shoehorn en code de production, ce qui évite la dérive habituelle vers le code applicatif
- Migration mécanique avec checklist, donc lançable sur un gros dossier de tests sans réfléchir à chaque fichier
Limites
- Hors plugin : le dossier misc/ n'est pas déclaré dans plugin.json, donc l'install par plugin ne la fournit pas
- Ajoute une dépendance de test dans ton package.json pour un problème que tous les repos n'ont pas
- TypeScript uniquement, et sans intérêt si ta suite construit déjà ses fixtures par des factories typées
Pour qui
- Suites de tests TypeScript où `as unknown as` est devenu le réflexe pour tout objet un peu gros
- Repos qui testent des handlers HTTP et doivent fabriquer un Request complet pour lire un seul champ
- Passes de nettoyage qualité où tu veux que les tests cassent quand un type change