Chargement

Piloter les sessions longues

Leçon 16 min
Chargement

Piloter les sessions longues

Demander à Claude d'effectuer rapidement une tâche est facile. Vous demandez, cela fonctionne, vous vérifiez le résultat. Mais les tâches longues, c'est une autre histoire. Refactoriser une dizaine de fichiers ou développer une nouvelle fonctionnalité peut prendre des heures. Et plus vous devez piloter Claude en cours de route, plus cela s'éternise.

La bonne nouvelle, c'est que vous disposez de nombreux outils pour aider Claude pendant ces sessions longues. Cela se résume en réalité à deux habitudes : cadrer le travail avant que Claude ne commence, et le piloter pendant qu'il s'exécute. Voyons ces deux aspects.

Cadrer le travail d'abord avec le mode plan

Avant que Claude n'écrive la moindre ligne, demandez-lui d'établir un plan. En mode plan, Claude effectue ses recherches sans modifier vos fichiers source. Il lit le code, détermine ce qui doit changer, et vous remet un plan à examiner.

Lorsque vous recevez ce plan, lisez-le réellement. Ne le survolez pas. Plus le plan est détaillé, moins vous aurez de surprises une fois que Claude commencera à l'exécuter. Si quelque chose ne va pas ou manque, demandez simplement à Claude de l'ajouter là où vous le souhaitez. Itérer sur un plan est bien plus rapide que de laisser Claude s'exécuter en espérant que tout se passe bien, puis de nettoyer les dégâts.

Piloter pendant que Claude travaille

Une fois que Claude est en cours d'exécution, vous disposez de plusieurs moyens pour le maintenir dans la bonne direction. Le premier est la compaction.

Compact

Compact résume votre conversation, utilise ce résumé comme nouveau contexte, et supprime les anciens messages. Cela libère votre fenêtre de contexte afin que Claude puisse continuer. Le risque est qu'un élément important soit omis du résumé, et que Claude s'écarte de sa trajectoire.

N'exécutez donc pas simplement /compact seul. Ajoutez des instructions après la commande pour indiquer à Claude comment résumer. Par exemple, si vous avez terminé le débogage il y a un moment et que seules certaines modifications d'API vous intéressent désormais, dites-le :

/compact Concentre-toi sur l'implémentation de l'option --version

Tout ce que vous écrivez après la commande détermine ce que le résumé conserve. C'est votre volant de pilotage pour le contexte.

Rewind

Lorsque Claude s'engage dans la mauvaise direction, vous n'avez pas besoin de le reformuler pour vous en sortir. Rewind vous ramène à votre dernier point de contrôle. Chaque requête utilisateur crée un point de contrôle auquel vous pouvez revenir. Pour ouvrir le menu, appuyez deux fois sur Échap sur une requête vide.

Depuis le menu Rewind, vous disposez de plusieurs options :

  • Restaurer le code et la conversation - revenir en arrière sur les deux à la fois.
  • Restaurer la conversation - revenir en arrière uniquement sur la discussion.
  • Restaurer le code - revenir en arrière uniquement sur les fichiers.
  • Résumer à partir d'ici - résume tout ce qui suit le point de contrôle. Idéal si vous avez eu une conversation annexe et souhaitez simplement libérer de l'espace.
  • Résumer jusqu'ici - résume tout ce qui précède le point de contrôle. Idéal lorsque vous avez eu une longue phase de préparation que vous souhaitez compresser, tout en conservant intactes les parties d'implémentation.

Laisser Claude fonctionner de manière plus autonome

Tout ce qui précède suppose que vous êtes impliqué de près, en observant et en corrigeant. Si vous souhaitez quelque chose de plus autonome, il y a goal et loop.

Goal

Goal définit une condition d'achèvement. Vous décrivez à quoi ressemble le fait d'être « terminé », et Claude continue de travailler sur plusieurs tours jusqu'à ce qu'un évaluateur rapide confirme que ces conditions sont remplies. Il ne s'arrêtera pas simplement la première fois qu'il pense avoir terminé.

Par exemple :

/goal tous les tests dans src/billing réussissent, et le vérificateur de types ne signale aucune erreur

Pour l'annuler, exécutez /goal clear. Une contrainte importante : l'évaluateur ne lit que la transcription. Votre condition doit donc être vérifiable à partir de la sortie que Claude produit réellement, comme les résultats d'une exécution de tests.

Loop

Loop exécute une requête à intervalle entre les tours, fixe ou auto-rythmé. Utilisez-le pour interroger quelque chose d'externe, comme une exécution CI ou un déploiement, et agir lorsque l'état change.

Pour arrêter une boucle auto-rythmée pendant qu'elle attend sa prochaine exécution, appuyez sur Échap. Une boucle à intervalle fixe continue de s'exécuter jusqu'à ce que vous demandiez à Claude de l'annuler ou que sept jours s'écoulent.

Exécuter du travail en parallèle avec les worktrees

La métaphore du pilotage suppose jusqu'à présent un seul volant dans une seule voiture. Mais lorsque vous exécutez plusieurs agents sur la même base de code, vous ne voulez pas deux volants dans une seule voiture. C'est dangereux. Deux sessions Claude se disputant les mêmes fichiers entraînent des conflits.

C'est là qu'interviennent les worktrees. Au lieu que les sessions se marchent dessus, chacune obtient sa propre arborescence de fichiers indépendante.

Comme chaque agent possède sa propre arborescence, ils ne peuvent pas écraser les modifications des autres. Lorsqu'une session se termine, une worktree propre est automatiquement supprimée.

Il existe un fichier utile à connaître. Un fichier .worktreeinclude à la racine du dépôt répertorie les fichiers ignorés par git à copier dans chaque worktree. Cela est utile pour des éléments comme un fichier de variables d'environnement ou une configuration locale dont vous avez besoin dans chaque worktree, mais que vous ne souhaitez pas valider dans le contrôle de version.

Pour récapituler

Gérer les sessions longues de Claude Code se résume à quelques habitudes :

  1. Cadrez votre travail d'abord, puis pilotez.
  2. Orientez votre compaction pour que le résumé conserve ce qui compte.
  3. Utilisez le menu Rewind pour corriger la trajectoire lorsque Claude s'écarte.
  4. Définissez un objectif lorsque vous pouvez mieux décrire ce qu'est « terminé » que les étapes à suivre.
  5. Exécutez du travail en parallèle dans des worktrees.

Faites cela, et vous pourrez faire confiance à une longue exécution sans surveiller chaque étape.