/goal définit une condition d’achèvement et Claude continue de travailler vers celle-ci sans que vous ayez besoin de le relancer à chaque étape. Après chaque tour, un petit modèle rapide vérifie si la condition est satisfaite. Si le modèle juge qu’elle n’est pas encore satisfaite, Claude commence un autre tour au lieu de vous rendre le contrôle. L’objectif s’efface automatiquement une fois la condition satisfaite, si le modèle juge la condition impossible à satisfaire, ou si un tour échoue sur une erreur que vous devez corriger.
Utilisez un objectif pour un travail substantiel avec un état final vérifiable :
- Migrer un module vers une nouvelle API jusqu’à ce que chaque site d’appel se compile et que les tests réussissent
- Implémenter un document de conception jusqu’à ce que tous les critères d’acceptation soient satisfaits
- Diviser un grand fichier en modules ciblés jusqu’à ce que chacun soit en dessous d’un budget de taille
- Traiter une file d’attente de problèmes étiquetés jusqu’à ce que la queue soit vide
Comparer les façons de maintenir une session en cours
Trois approches maintiennent la session actuelle en cours entre les invites. Choisissez en fonction de ce qui devrait démarrer le tour suivant :/goal et un Stop hook se déclenchent tous les deux après chaque tour. /goal est un raccourci limité à la session : vous tapez une condition et elle est active pour la session actuelle uniquement. Un Stop hook réside dans votre fichier de paramètres, s’applique à chaque session dans sa portée, et peut exécuter un script pour des vérifications déterministes ou une invite pour des vérifications évaluées par le modèle.
Le mode auto en lui-même approuve les appels d’outils au sein d’un seul tour mais ne démarre pas un nouveau. Claude s’arrête quand il juge le travail terminé. /goal ajoute un évaluateur séparé qui vérifie votre condition après chaque tour, donc l’achèvement est décidé par un modèle frais plutôt que par celui qui effectue le travail. Les deux sont complémentaires : le mode auto supprime les invites par outil, et /goal supprime les invites par tour.
Utiliser /goal
Un seul objectif peut être actif par session. La même commande le définit, le vérifie et l’efface selon l’argument.
Définir un objectif
Exécutez/goal suivi de la condition que vous souhaitez satisfaire. Si un objectif est déjà actif, le nouveau le remplace.
◎ /goal active montre depuis combien de temps l’objectif s’exécute.
Un objectif ne change pas votre mode de permission. Pour laisser les tours d’objectif s’exécuter sans surveillance, exécutez /goal en mode auto. En mode Manuel, Claude demande toujours avant les appels d’outils que vos paramètres ne permettent pas déjà, comme la commande de test ci-dessus.
Pendant que l’objectif est actif, la transcription affiche chaque verdict que l’évaluateur retourne, et vous pouvez appuyer sur Ctrl+O pour voir la raison derrière celui-ci. La vue de statut affiche également la raison la plus récente, afin que vous puissiez voir vers quoi Claude travaille ensuite.
Écrire une condition efficace
L’évaluateur juge votre condition par rapport à ce que Claude a présenté dans la conversation. Il n’exécute pas les commandes ou ne lit pas les fichiers indépendamment, donc écrivez la condition comme quelque chose que la propre sortie de Claude peut démontrer. « Tous les tests danstest/auth réussissent » fonctionne parce que Claude exécute les tests et le résultat se retrouve dans la transcription pour que l’évaluateur le lise.
Une condition qui tient sur plusieurs tours a généralement :
- Un état final mesurable : un résultat de test, un code de sortie de build, un nombre de fichiers, une queue vide
- Une vérification énoncée : comment Claude devrait le prouver, comme «
npm testsort 0 » ou «git statusest propre » - Des contraintes qui importent : tout ce qui ne doit pas changer en chemin, comme « aucun autre fichier de test n’est modifié »
or stop after 20 turns. Claude rapporte la progression par rapport à cette clause à chaque tour et l’évaluateur la juge à partir de la conversation.
Vérifier le statut
Exécutez/goal sans arguments pour voir l’état actuel.
- La condition
- Depuis combien de temps il s’exécute
- Combien de tours ont été évalués
- La dépense de jetons actuelle
- La raison la plus récente de l’évaluateur
Effacer un objectif
Exécutez/goal clear pour supprimer un objectif actif avant qu’il ne se résolve.
Goal cleared: suivi de la condition pour confirmer, ou No goal set si rien n’était actif.
stop, off, reset, none, et cancel sont acceptés comme alias pour clear. L’exécution de /clear pour démarrer une nouvelle conversation supprime également tout objectif actif.
Reprendre avec un objectif actif
Quand vous reprenez une session, Claude Code restaure un objectif qui était encore actif quand la session s’est terminée. Claude Code le restaure sur chaque route de reprise :--continue, --resume avec un ID ou un nom de session, ou un chemin de fichier de transcription, et le sélecteur de session. Avant v2.1.239, Claude Code restaurait l’objectif sur chaque route sauf le sélecteur claude --resume.
Claude Code conserve la condition mais réinitialise le nombre de tours, le minuteur et la ligne de base de dépense de jetons. Il ne restaure pas un objectif qui était déjà atteint ou effacé.
Exécuter de manière non-interactive
/goal fonctionne en mode non-interactive, dans l’application de bureau, et via Remote Control. Définir un objectif avec -p exécute la boucle jusqu’à l’achèvement en une seule invocation :
--output-format stream-json --verbose pour émettre chaque message au fur et à mesure que la boucle s’exécute.
Interrompez le processus avec Ctrl+C pour arrêter un objectif non-interactive avant qu’il ne se résolve.
Comment fonctionne l’évaluation
/goal est un wrapper autour d’un Stop hook basé sur une invite limité à la session. Chaque fois que Claude termine un tour, Claude Code envoie la condition et la conversation jusqu’à présent à votre petit modèle rapide configuré, qui par défaut est Haiku sur l’API Claude ; sur un fournisseur tiers, consultez votre page de fournisseur pour le défaut de la plateforme. Le modèle retourne l’un des trois verdicts, chacun avec une courte raison :
- Pas encore atteint : Claude continue à travailler et prend la raison comme guidance pour le tour suivant.
- Atteint : Claude Code efface l’objectif et enregistre une entrée atteinte dans la transcription.
- Impossible : l’évaluateur a jugé que la condition ne peut jamais être satisfaite. Claude Code efface l’objectif et enregistre une entrée échouée dans la transcription avec la raison. Vous n’avez pas besoin de l’effacer vous-même.
Quand un tour échoue
Quand un tour échoue, Claude Code efface l’objectif si l’erreur est une que vous devez corriger. Après toute autre erreur, l’objectif reste défini.Les erreurs que vous devez corriger effacent l’objectif
Si un tour échoue sur une erreur qui ne s’effacera que lorsque vous la corrigerez, Claude Code efface l’objectif et imprime un avertissement nommant la cause. L’avertissement commence parGoal cleared after an unrecoverable error et se termine par Run /goal again to continue. Corrigez la cause, puis définissez l’objectif à nouveau avec /goal <condition>. Quatre types d’échec effacent l’objectif :
- Une défaillance d’authentification, lorsque Claude Code gère ses propres identifiants. Lorsqu’un hôte les gère pour vous, comme l’application de bureau, l’extension VS Code ou une session cloud, Claude Code laisse l’objectif actif car l’hôte restaure l’accès de lui-même.
- Un solde de crédit épuisé
- Un débordement de contexte que l’auto-compaction n’a pas pu effacer
- Un modèle qui n’est pas disponible
Les autres erreurs réessaient ou mettent en pause l’objectif
Après tout autre échec, l’objectif reste défini. Dans une session interactive sur Claude Code v2.1.269 ou ultérieur, Claude Code imprime également une ligne nommant la cause et réessaye de lui-même ou vous attend :- Réessayer : après un échec qui tend à s’effacer de lui-même, comme un serveur surchargé ou une connexion perdue, un avis commençant par
Goal still activeaffiche l’attente avant la prochaine tentative. Après trois tentatives automatiques, l’objectif se met en pause à la place. - Pause : après un échec qu’une nouvelle tentative ne ferait que répéter, comme une limite de débit d’API, une limite d’utilisation de claude.ai, ou un hook qui a terminé le tour, un avis commençant par
Goal pausednomme la cause. Si la session attend de continuer automatiquement quand une limite d’utilisation se réinitialise, Claude reprend le travail vers l’objectif à ce moment.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES sur 0, ce qui désactive également les vérifications.
Le travail en arrière-plan diffère l’évaluation
Si un sous-agent ou une commande shell en arrière-plan est toujours en cours d’exécution lorsqu’un tour se termine, Claude Code ignore l’évaluation pour ce tour. Il évalue à la fin du tour suivant qui se termine sans travail en arrière-plan en cours d’exécution. Lorsque le travail en arrière-plan se termine, Claude Code livre le résultat à Claude en tant que nouveau tour, vous n’avez donc pas besoin de faire une invite. Une fois que le travail en arrière-plan a gardé l’objectif en attente pendant 30 minutes, une vérification est due. Dans la vérification, Claude Code énumère les tâches en cours d’exécution et demande à Claude de lire leur sortie, de continuer à attendre s’ils progressent, et de corriger ou d’arrêter ceux qui sont bloqués. Après la première vérification, Claude Code attend deux fois plus longtemps avant chaque vérification ultérieure, jusqu’à quatre fois l’intervalle initial : avec la valeur par défaut, 1 heure après la première vérification, puis toutes les 2 heures. Claude Code livre une vérification due, la première incluse, de l’une des deux façons suivantes :- Lorsqu’un tour se termine : Claude Code livre la vérification à la fin du tour suivant qui se termine avec le travail toujours en cours d’exécution. Dans une session non-interactive, comme celle démarrée avec
-p, c’est la seule façon dont Claude Code livre les vérifications. - Pendant que la session est inactive : dans une session interactive, Claude Code démarre également un tour de lui-même pour livrer la vérification au lieu d’attendre votre prochaine invite. Si le travail en arrière-plan s’est arrêté sans signaler un résultat, Claude Code demande à Claude de continuer vers l’objectif. Claude Code démarre au maximum trois vérifications inactives par objectif entre vos invites. Dans la troisième vérification inactive, Claude Code dit que les vérifications inactives sont en pause jusqu’à ce que vous envoyiez une autre invite. Avant v2.1.246, les vérifications inactives n’étaient pas limitées. Les vérifications inactives nécessitent Claude Code v2.1.236 ou ultérieur.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES. Claude Code utilise votre valeur à la place de l’intervalle de 30 minutes et met à l’échelle les intervalles ultérieurs avec elle. Définissez-le sur 0 pour désactiver les vérifications et les tentatives automatiques.
Les vérifications nécessitent Claude Code v2.1.234 ou ultérieur.
Modèle d’évaluation et coût
Pour évaluer sur un modèle différent, définissezANTHROPIC_DEFAULT_HAIKU_MODEL.
L’évaluateur s’exécute sur le fournisseur pour lequel votre session est configurée. Il n’appelle pas les outils, donc il ne peut juger que ce que Claude a déjà présenté dans la conversation.
Les jetons d’évaluation sont facturés sur le petit modèle rapide configuré pour votre fournisseur et sont généralement négligeables par rapport à la dépense du tour principal.
Exigences
Claude Code met/goal à disposition selon la même règle de confiance d’espace de travail que les hooks dans les fichiers de paramètres, car l’évaluateur fait partie du système de hooks. /goal est également indisponible quand disableAllHooks est true après l’application de la précédence des paramètres, ou quand allowManagedHooksOnly est défini dans les paramètres gérés. Dans chaque cas, la commande vous indique pourquoi au lieu de ne rien faire silencieusement.
Voir aussi
- Exécuter une invite à plusieurs reprises avec
/loop: réexécuter sur un intervalle de temps au lieu de jusqu’à ce qu’une condition soit satisfaite - Hooks basés sur une invite : écrivez votre propre Stop hook quand vous avez besoin d’une logique d’évaluation personnalisée
- Mode auto : approuvez les appels d’outils automatiquement afin que chaque tour d’objectif s’exécute sans surveillance
- Comparaison de planification : exécutez un travail selon un calendrier indépendant de toute session ouverte