CommunityRédaction et éditiongithub.com

Ponytail

Applique un mode minimaliste opt-in au codage : comprenez d'abord le vrai flux, puis réduisez la solution.

Qu'est-ce que Ponytail ?

Ponytail est une compétence d'agent conçue pour les workflows de génie logiciel rigoureux, idéale pour les développeurs utilisant Claude Code, Cursor ou Codex. Elle impose un mode minimaliste opt-in, partant du principe que la paresse signifie efficacité, pas négligence : il faut d'abord comprendre le flux réel, puis minimiser la solution. La compétence utilise une échelle de décision en sept niveaux pour déterminer s'il faut réutiliser du code existant, utiliser la bibliothèque standard, une fonctionnalité native, ou finalement écrire le minimum de nouveau code nécessaire. Elle définit des niveaux d'intensité (lite, full, ultra) et exige des changements réellement petits, des vérifications proportionnées et des rapports concis, tout en respectant les invariants de sécurité et les exigences utilisateur.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add S3n0001/agent-skills

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Ponytail ?

Appliquer un mode minimaliste opt-in au codage. Être paresseux signifie être efficace, pas négligent : comprendre d'abord le vrai flux, puis minimiser la solution. Par défaut, utiliser l'intensité pleine (full) uniquement pour la tâche en cours. Honorer les niveaux lite, full ou ultra lorsqu'ils sont spécifiés, et s'arrêter lorsque l'utilisateur demande le mode normal.

Monter l'échelle

S'arrêter au premier échelon qui satisfait pleinement la demande :

  1. Cela doit-il exister ? Ignorer le travail spéculatif.
  2. La base de code le contient-elle déjà ? Chercher et réutiliser le helper, le type, le motif ou la jointure propriétaire.
  3. La bibliothèque standard résout-elle cela ? L'utiliser.
  4. Une fonctionnalité native de la plateforme résout-elle cela ? Privilégier le comportement HTML, CSS, base de données, framework ou système d'exploitation plutôt que du code personnalisé.
  5. Une dépendance installée résout-elle déjà cela ? La réutiliser ; ne pas ajouter de package pour quelques lignes claires.
  6. Une seule expression locale lisible peut-elle résoudre cela ? La garder locale.
  7. Seulement alors : écrire le minimum de nouveau code qui soit correct.

L'échelle suit la compréhension, ne la remplace jamais. Lire les instructions de la tâche et du dépôt, tracer les vrais appelants et consommateurs, et identifier la source de vérité avant de choisir un échelon.

Garder le changement réellement petit

  • Corriger la cause racine au niveau de la jointure partagée propriétaire. Une garde d'une ligne dans le chemin commun est plus petite que des correctifs dans chaque appelant.
  • Préserver chaque exigence explicite et tout invariant atteignable de sécurité, confidentialité, accessibilité, intégrité des données, gestion des erreurs et compatibilité.
  • Privilégier la suppression à l'ajout et le code ennuyeux au code astucieux.
  • Éviter les interfaces à une seule implémentation, les fabriques à un seul produit, la configuration spéculative, les frameworks parallèles, les échafaudages "pour plus tard", et les nouvelles dépendances sans besoin mesuré.
  • Utiliser le moins de fichiers possible pour produire un résultat cohérent et lisible. Ne pas forcer une ligne unique qui cache le comportement ou déplace la complexité ailleurs.
  • Lorsque deux petites solutions sont équivalentes, préférer celle au comportement aux limites plus sûr et au coût de possession plus faible.
  • Marquer une simplification délibérée avec un plafond réel en utilisant un commentaire ponytail: qui nomme le plafond et le déclencheur de mise à niveau.

Une demande complexe peut avoir un chemin équivalent plus simple. L'utiliser et expliquer la substitution en une ligne, mais ne jamais abandonner une exigence simplement pour réduire le diff.

Vérifier proportionnellement

Un changement paresseux sans preuve est inachevé. Suivre les conventions de test existantes du dépôt :

  • La logique non triviale (branche, boucle, analyseur, chemin monétaire ou de sécurité) obtient au moins un test exécutable ciblé.
  • Ajouter d'autres tests uniquement pour des risques ou conditions d'acceptation matériellement distincts.
  • Ne pas introduire un framework de test pour un seul changement.
  • Une ligne unique triviale n'a pas besoin de nouveau test si la couverture existante le prouve déjà.

Définir l'intensité

NiveauComportement
liteConstruire ce qui a été demandé et nommer l'équivalent plus paresseux en une ligne.
fullAppliquer l'échelle ; privilégier la réutilisation, la bibliothèque standard, le comportement natif, et le diff correct le plus court et lisible.
ultraContester les exigences spéculatives, essayer d'abord la suppression, et livrer uniquement le plus petit besoin démontré.

Les exigences utilisateur et les invariants de sécurité priment toujours sur l'intensité.

Rapporter brièvement

Commencer par le code ou le résultat livré. Utiliser ensuite au maximum trois courtes lignes pour ce qui a été ignoré et la condition qui justifierait de l'ajouter, sauf si l'utilisateur a explicitement demandé un rapport ou une visite guidée.

Modèle : [résultat] -> ignoré : [X] ; ajouter quand [Y].

Ponytail régit ce qui est construit, pas si la tâche est comprise ou si les preuves requises sont rapportées. Le chemin correct et lisible le plus court pour terminer est le bon chemin.

Skills associés