sharp-edges
sharp-edges
Catalogue généré le 2026-05-11
En une phrase
IdentifiesRepère error-proneles APIs,API dangerousou configurations,les andconfigurations footgunqui designsressemblent thatà enabledes security« mistakes.pièges à doigts » : techniquement utilisables, mais conçues d'une manière où l'usage normal mène facilement à une faille de sécurité.
Quand l'utiliser
UseTuwhenconçoisreviewingune bibliothèque ou une APIdesigns,publique et tu veux qu'elle soit « sûre par défaut ».
Comment l'invoquer
- Slash command :
/sharp-edges(si exposé dans ton CLI). - Phrases déclencheurs (texte) :
voir"footgun",la"misuse-resistant",description"securecomplètedefaults",ci-dessous"API usability", "dangerous configuration". - Auto-invocation :
surSur demandeexpliciteexplicite.
Description complètedétaillée
IdentifiesIl error-proneexiste APIs,deux dangerousphilosophies configurations,pour andconcevoir footgunune designsAPI. thatLa enablepremière security: mistakes.« Useon whenoffre reviewingtoute APIla designs,flexibilité, configurationc'est schemas,au cryptographicdéveloppeur libraryde ergonomics,bien orl'utiliser evaluating». whetherLa codedeuxième follows: 'secure« byon default'rend andle 'chemin sécurisé tellement évident qu'on ne peut pas vraiment se tromper » — c'est le « pit of success'success principles.». Triggers:Ce footgun,skill misuse-resistant,vérifie securesi defaults,une API usability,tombe dangerousdans configuration.la première catégorie (auquel cas elle produira des bugs en masse) ou dans la deuxième.
Concrètement, il chasse plusieurs types de « pièges ». Les pièges de choix d'algorithme : laisser le développeur choisir entre RSA, HMAC, ou pire none (le célèbre piège JWT où un attaquant peut désactiver la vérification de signature). Les valeurs par défaut dangereuses : un timeout par défaut de 0 qui signifie « accepte tout », un mode debug activé par défaut. Les paramètres ambigus : lifetime=0 veut-il dire « immédiat » ou « infini » ? Personne ne sait. Les API qui demandent au développeur de se rappeler de règles spéciales (« n'oublie pas d'appeler verify() après decode() ») au lieu de les imposer automatiquement.
Le skill rejette aussi les excuses classiques : « c'est documenté » (les devs ne lisent pas la doc sous pression), « les utilisateurs avancés ont besoin de flexibilité » (90 % des usages « avancés » sont du copier-coller), « c'est la responsabilité du dev » (non, c'est le designer qui a mis le piège). Il propose à la place des principes : choix sécurisé par défaut, primitives dangereuses cachées derrière une couche haut niveau, configurations dangereuses rejetées à la validation.
Pour aller plus loin
Sharp
Pour Edgesles Analysisdétails
Evaluatestechniques, whetherexemples APIs,et configurations,patterns and interfaces are resistant to developer misuse. Identifies designs where the "easy path" leads to insecurity.
When to Use
When NOT to Use
Core Principle
The pit of success: Secure usage should be the path of least resistance. If developers must understand cryptography, read documentation carefully, or remember special rules to avoid vulnerabilities, the API has failed.
Rationalizations to Reject
(extrait —spécifiques, voir le SKILL.md complet pour la suite)original.
Source
- Plugin :
trailofbits/sharp-edges - Nom interne :
sharp-edges - Fichier :
/home/thymon/.claude/plugins/cache/trailofbits/sharp-edges/1.0.0/skills/sharp-edges/SKILL.md