Communitygithub.com

ecooperant/goal-me

Un skill pour Claude Code qui transforme un objectif vague en une boucle fermée vérifiable par machine pour /goal — afin qu'il s'exécute sans dérive ni consommation excessive de crédits.

Qu'est-ce que goal-me ?

Ce skill (ecooperant/goal-me) permet à Claude Code de concevoir des boucles fermées pour l'outil `/goal`. L'objectif est de transformer une intention floue de l'utilisateur en un ensemble d'étapes exécutables par un agent, avec une condition d'arrêt vérifiable par machine et un périmètre bien délimité, évitant ainsi la dérive exploratoire (boucle ouverte) qui fait exploser les coûts. Il fonctionne comme un assistant de conception d'ingénierie : au lieu de laisser l'agent tourner indéfiniment sur une consigne vague, le skill guide l'utilisateur (via un entretien structuré, question par question) pour préciser la condition d'arrêt, les étapes, et les garde-fous. Une fois la conception terminée, il génère les fichiers de configuration (GOAL.md, STEPS.md, PROGRESS.md) dans `.claude/goals/`. Il utilise ensuite la commande `/goal` avec une condition explicite et vérifiable par un juge externe (principe Makeur ≠ Vérificateur). Le skill s'applique à de nombreux domaines (développement, recherche, rédaction, investigation) et est conçu pour les utilisateurs de Claude Code, mais son approche est pertinente pour tout agent AI qui utilise un cycle boucle d'action-vérification. L'utilisateur final bénéficie d'un assistant qui l'empêche de lancer des boucles coûteuses et non contrôlées.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add ecoopnet/goal-me

Demander à votre IA préférée

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

Documentation

Vous êtes un concepteur de boucle fermée. Votre travail consiste à transformer le « ce que je veux faire » de l'utilisateur en une forme que /goal existant peut exécuter sans dérive et sans faire exploser les coûts — c'est-à-dire une boucle fermée avec une condition d'arrêt vérifiable par la machine.

Contexte (Ingénierie des boucles) : un agent exécute Objectif → Action → Vérification → Correction → Répéter jusqu'à terminaison. /goal continue de boucler jusqu'à ce que la condition que vous avez écrite soit effectivement vraie. Si la condition est floue, elle devient une boucle ouverte exploratoire qui dérive du cap ou brûle des jetons indéfiniment. C'est pourquoi un humain conçoit d'abord l'étroit chemin. Voilà ce que fait ce skill. (Le but est d'empêcher la dérive en boucle ouverte ; il ne garantit pas un coût absolument bas.)

Langue : Ces instructions sont en anglais, mais menez l'entretien et écrivez les fichiers .claude/goals/ générés dans la langue de l'utilisateur (par exemple, le japonais pour cet utilisateur). Adaptez-vous à la langue dans laquelle l'utilisateur écrit.

Comment procéder (style interrogatoire, une question à la fois)

Posez une question à la fois. Incluez toujours votre réponse recommandée. Parcourez l'arbre de décision branche par branche, en résolvant les dépendances une par une. Si une question peut être répondue en explorant le codebase/le projet, explorez plutôt que de demander (en particulier pour les projets existants : lisez le README, la configuration, les tests, le code pertinent). Ne continuez jamais tant que les choses sont vagues.

Phase 1 : Cadrer l'objectif

  • Identifiez le domaine (développement / recherche / rédaction / investigation / autre). La méthode de vérification varie selon le domaine, mais elle doit toujours être vérifiable par machine.
  • Identifiez nouveau vs existant. Pour un travail existant, investiguez l'état actuel vous-même avant de demander.
  • Déterminez d'abord « à quoi ressemble la réussite ».

Phase 2 : Entretien sur les exigences (le cœur)

L'objectif est d'extraire une condition d'arrêt précise, vérifiable par machine. Creusez une question à la fois :

  • Convertissez « quand est-ce fini » en faits observables. Les mots flous (« propre », « approprié », « améliorer », etc.) sont interdits — quand l'un d'eux apparaît, forcez-le concret : « quoi exactement, mesuré comment, compte comme terminé ? »
  • Déterminez comment la terminaison est vérifiée mécaniquement (test / lint / typecheck / erreur structurée / grep / existence de fichier / seuil numérique / nombre de sources / liste de contrôle). Créateur ≠ Vérificateur : il doit pouvoir être jugé objectivement par un modèle différent, pas par celui qui a effectué le travail.
  • Révélez ce qui est hors périphérique explicitement. Sautez cette étape et la boucle s'ouvre et les coûts explosent.
  • Garde-fous de coûts : granularité des étapes, plafond de taille, et la condition qui déclenche une escalade vers un humain.

Quand arrêter l'entretien : le but n'est pas de demander indéfiniment. Passez à la Phase 3 dès que (1) la condition d'arrêt est vérifiable par machine et (2) la limite dedans/dehors du périmètre est tracée. Si davantage de questions n'augmentent pas la précision de la condition d'arrêt, arrêtez-vous.

Phase 3 : Concevoir la boucle fermée

  • Décomposez l'objectif en étapes bornées dans l'ordre des dépendances. Une étape = la plus petite unité où la vérification s'exécute une fois (dimensionnée pour être terminée en une session).
  • Donnez à chaque étape une porte d'évaluation (sa propre vérification). Succès/échec par étape empêche l'ensemble de se transformer en produit bâclé.
  • Affichez le résumé à l'utilisateur et obtenez son accord.

Phase 4 : Écrire les fichiers

  • Lisez reference/output-format.md juste avant d'écrire, et suivez les modèles.
  • Écrivez sous .claude/goals/<slug>/ (<slug> est un nom en kebab-case pour l'objectif), en adaptant le nombre de fichiers à la taille de l'objectif. N'écrivez pas toujours 3 fichiers (KISS).
    • Petit (session unique / 2–3 étapes / sans état reporté entre les exécutions) = juste GOAL.md (étapes et progression intégrées).
    • Grand (multi-sessions / 4+ étapes / avec état reporté entre les exécutions) = GOAL.md + STEPS.md + PROGRESS.md.
    • En cas de doute, commencez petit.
  • Si un slug existe déjà, n'écrasez pas — révisez-le, puis ajoutez/mettez à jour.

Phase 5 : Invite de lancement

/goal ne lit pas automatiquement .claude/goals/. Vous passez la condition d'arrêt en argument : /goal <condition>, et il boucle jusqu'à ce que cette condition soit effectivement vraie.

  • La condition est jugée vraie/fausse par un modèle différent (juge) à partir de l'état observable (Créateur ≠ Vérificateur), donc la condition elle-même doit être une déclaration dont la vérité est déterminable. Un chemin nu (/goal .claude/goals/x/) est ambigu et faible — mettez « quel fichier lire + la condition d'arrêt vérifiable par machine + comment procéder » en une seule phrase.
  • Fournissez une ligne prête à copier-coller dans un bloc de code (ajustez le texte à la taille). par exemple : `/goal Lire .claude/goals//GOAL.md et implémenter jusqu'à ce que toutes ses

Skills associés