Aller au contenu principal
Accueil : Florian Bruniaux Engineering & AI

Florian Bruniaux / Explore

Rechercher sur le site

Recherchez en français ou en anglais, ou accédez à une rubrique.

↑ ↓ pour naviguerEntrée pour ouvrirÉchap pour fermer

FR
Thème
Contact

2/2 · Claude a sélectionné mon style de sortie. Puis l’a ignoré

Claude Code a sélectionné flow-lean, mais n’a pas ajouté son footer. Une correction de casse a montré pourquoi il faut des preuves distinctes pour l’installation, la sélection et le comportement.

19 min de lecture Mis à jour le
Aller au résumé ↓

TL;DR

Je recommande d’installer Flow Lean même si Claude Code propose désormais un style Concise : Concise suffit pour obtenir des réponses plus courtes, et Flow Lean va plus loin. Je place les préférences de réponse dans un Output Style, les informations du repository dans CLAUDE.md et les workflows dans des skills. Je ne me fie à un réglage qu’après qu’un canari dans une nouvelle session a montré le comportement attendu : Claude Code affichait mon style comme sélectionné, mais l’ignorait jusqu’à une correction de casse.

CoucheContenu
Output StyleForme, ton et mise en forme par défaut des réponses dans la conversation principale de Claude Code
CLAUDE.mdIdentité du projet, conventions, commandes, limites et contexte du repository
SkillWorkflow réutilisable chargé lorsque la tâche s’y prête ou que l’utilisateur l’invoque
SubagentSon propre rôle, ses outils, son modèle, son prompt et les skills à précharger
PreuveLes empreintes des fichiers établissent l’installation ; un canari dans une nouvelle session établit le comportement observé

Mon écran /config de Claude Code affichait deux réglages côte à côte : Verbose output false et Output style flow-lean. Ils semblent liés, mais contrôlent des couches différentes.

Onglet Config de Claude Code montrant Verbose output à false et Output style à flow-lean
L’onglet Config confirme la valeur sélectionnée. Il ne prouve pas que chaque réponse ou subagent a suivi le style.

Verbose output règle la quantité de détails opérationnels affichés par Claude Code. Un Output Style modifie les instructions du system prompt de la conversation principale.

C’est ce second mécanisme qui permet de conserver une règle de réponse comme “lead with the result” (traduction : « commencer par le résultat ») sans la répéter dans chaque message utilisateur.

La première partie explique pourquoi j’ai créé et évalué Flow Lean comme skill complet. Cette partie traite de la couche de livraison plus légère qui porte ses préférences de communication.

Référence produit vérifiée le 15 octobre 2026 : Anthropic documente désormais Proactive, Concise, Explanatory et Learning parmi les styles intégrés, aux côtés de Default. À partir de la version 2.1.251, le changement de style s’applique au message suivant ; modifier son fichier nécessite de redémarrer le terminal. Le canari Claude Code 2.1.266 présenté plus bas reste une observation datée. Référence Output Styles

Les préférences de réponse n’ont pas leur place dans chaque fichier de projet

Au départ, j’avais trois moyens de demander des réponses concises : mentionner Flow Lean dans le prompt, charger le skill complet ou placer les mêmes règles dans le CLAUDE.md global. Les trois fonctionnent, mais leur coût diffère.

Répéter la consigne mobilise l’attention et suppose que l’utilisateur s’en souvienne.

Charger le skill complet ajoute des règles de workflow sur la classification des tâches, la sécurité, les tests, les récapitulatifs, l’attribution et la profondeur de review, même lorsque le seul besoin est d’obtenir des réponses plus courtes.

Placer tout cela dans le CLAUDE.md global mélange les préférences personnelles de réponse avec le contexte du projet.

La documentation Output Styles d’Anthropic définit un canal dédié. Un fichier Markdown personnalisé modifie le rôle, le ton ou le format de réponse du system prompt.

CLAUDE.md reste l’endroit où consigner le contexte du code et les conventions du projet. Les skills restent des workflows propres à une tâche.

Claude Code propose aussi un style Concise intégré, documenté à partir de la version 2.1.237. Il commence par le résultat et raccourcit les réponses tout en préservant la profondeur technique, les rapports d’erreur, les avertissements de sécurité et les confirmations d’actions destructrices.

Si vous voulez seulement des réponses plus courtes, le style intégré suffit. Je recommande tout de même d’installer Flow Lean : il va au-delà du style natif, avec son propre contrat de réponse et son footer.

Cette séparation réduit la couche permanente :

main conversation
  system prompt
    + compact Output Style       always-on response defaults
  project context
    + CLAUDE.md                  repository rules and facts
  task context
    + Flow Lean SKILL.md         full workflow when selected

Les couches peuvent se renforcer mutuellement, mais elles ne doivent pas répéter les mêmes paragraphes. Les doublons créent deux surfaces de maintenance et compliquent l’analyse des règles de priorité.

Un style personnalisé a besoin d’un champ de sécurité

Un style personnalisé est un fichier Markdown doté d’un frontmatter YAML. Enregistrez un style personnel sous ~/.claude/output-styles/ ou un style géré par l’équipe sous .claude/output-styles/.

Ce modèle conserve les consignes d’ingénierie intégrées à Claude Code et n’ajoute que des préférences de communication :

---
name: Flow Lean
description: Lead with the result and keep proof, uncertainty, and safety.
keep-coding-instructions: true
---

Use a concise, action-first response style by default.

- Lead with the result, decision, command, or next action.
- Keep context that changes the decision, required steps, proof, uncertainty,
  and safety information.
- Preserve the mechanism and clarifying steps when explaining or teaching.
- State a tradeoff's verdict before its evidence and non-gains.
- Prefer clarity over compression for destructive actions, security,
  permissions, secrets, or material cost.

keep-coding-instructions: true est la ligne importante. Anthropic documente false comme valeur par défaut.

Sans elle, le style personnalisé omet les consignes d’ingénierie logicielle intégrées sur le périmètre des changements, les commentaires et la vérification.

Retirer ces règles convient à une persona qui ne code pas. C’est un mauvais choix par défaut pour un Output Style censé modifier la communication pendant que Claude continue à éditer du logiciel.

Un style peut toujours contredire les règles du projet ou demander à Claude de masquer son incertitude. Ce champ conserve seulement la couche de règles de programmation intégrée tout en ajoutant les consignes personnalisées.

Output Style, CLAUDE.md, skill et subagent ont des périmètres distincts

Le choix est plus simple lorsque chaque mécanisme a une seule fonction :

MécanismePosition dans le promptPersistanceUsage adapté
Output StyleModifie le system prompt principalChaque réponse de la conversation principale tant qu’il est sélectionnéFormat, voix, densité de réponse ou rôle non lié au code
CLAUDE.mdContexte du projet après le system promptChargé selon la hiérarchie mémoire de Claude CodeFaits du projet, commandes, conventions et limites de travail
SkillConsignes de tâcheChargé lorsqu’il est invoqué ou sélectionnéProcédure réutilisable, méthode métier ou comportement avec ses propres contrôles
--append-system-promptAjouté pour une invocationProcessus courantConsignes temporaires pour une exécution scriptée ou ponctuelle
SubagentSon propre system prompt, ses outils et son modèleRôle délégué ou session sélectionnée avec --agentTravail isolé avec un contexte et des permissions explicites

Cette distinction compte pour le context engineering. Une préférence de réponse utilisée dans chaque repository relève d’un Output Style utilisateur. Une commande de test propre à un repository relève du CLAUDE.md du projet.

Un workflow de contrôle des réponses en 17 cas relève du skill Flow Lean. Un worker de review qui doit suivre Flow Lean doit le précharger ou l’invoquer au sein de ce worker.

Anthropic indique que les Output Styles s’appliquent à la conversation principale et à un fork, qui hérite de toute la conversation parente et de son system prompt. Tout autre subagent utilise son propre system prompt ; le style ne modifie donc pas ses réponses.

La documentation des subagents fournit aussi un champ skills pour les définitions qui doivent précharger le contenu complet d’un skill.

C’est une limite qu’un routeur ne peut pas effacer. Un indice BM25 dans la conversation parente peut suggérer Flow Lean au parent. Il ne prouve pas qu’un subagent recevant un prompt distinct a chargé le skill.

Les définitions de subagents, les prompts de délégation et les preuves d’invocation propres à chaque worker restent nécessaires pour étayer cette affirmation.

Des conteneurs distincts montrent les couches de consignes de la conversation principale et le prompt et les instructions chargées par un subagent nommé. Une exception séparée montre qu’un fork hérite du parent.
Un Output Style sélectionné appartient à la conversation principale. Les workers nommés ont leur propre périmètre de prompt ; un fork de conversation constitue un cas d’héritage distinct. Voir l’image en taille réelle.

La configuration locale est une release, pas une copie isolée

Ma configuration globale conserve le style modifiable hors du répertoire actif de Claude Code.

Un renderer place les octets relus dans une release immuable, puis un installateur projette cet artefact à l’emplacement natif de Claude et le sélectionne dans les paramètres.

~/.config/ai-agents/src/claude-output-style.md
  -> ~/.config/ai-agents/releases/<release-id>/claude/output-styles/flow-lean.md
  -> ~/.claude/output-styles/flow-lean.md
  -> ~/.claude/settings.json: { "outputStyle": "Flow Lean" }

Le 9 septembre 2026, la source, l’artefact de release et le style actif faisaient tous 1 427 octets et partageaient l’empreinte SHA-256 cd54ccd231482dacdd91a6c1cf1541a87f05e56b913f0fe500a90020ee484b98. Le skill Flow Lean complet faisait 11 252 octets et avait une empreinte différente.

Ces tailles décrivent cet instantané de configuration. Elles ne constituent ni un benchmark de tokens ni une preuve d’une baisse du coût total.

L’architecture de configuration portable explique pourquoi la source de référence, les artefacts générés, les projections actives et les preuves d’exécution restent des états distincts.

Sélectionnez le style au périmètre voulu

Pour définir un style personnel par défaut dans tous les repositories, choisissez-le dans les paramètres utilisateur :

{
  "outputStyle": "Flow Lean"
}

La valeur exacte compte lorsque le frontmatter prend le pas sur le nom du fichier. Ce style est enregistré sous flow-lean.md, mais son frontmatter déclare name: Flow Lean.

Anthropic précise que le nom du fichier devient celui du style uniquement si name est absent. Le réglage doit donc correspondre au nom déclaré, casse comprise.

J’ai vérifié ce comportement avec Claude Code 2.1.266 dans un projet isolé, sans hooks utilisateur, plugins ni serveurs MCP. Deux exécutions Haiku en mode print, chacune dans une nouvelle session et utilisant "outputStyle": "flow-lean", ont omis le footer exigé par le style.

La modification de cette seule valeur en "outputStyle": "Flow Lean" a produit Skills used: flow-lean dès l’exécution suivante dans une nouvelle session.

C’est une preuve d’exécution pour cette version du client, pas une garantie pour toutes les versions.

Cet objet doit figurer dans ~/.claude/settings.json. Lancer /config et sélectionner un style écrit ce choix dans .claude/settings.local.json pour le projet courant.

Selon la priorité des paramètres d’Anthropic, les paramètres gérés arrivent en premier, suivis des paramètres de ligne de commande, des paramètres locaux du projet, des paramètres partagés du projet, puis des paramètres utilisateur.

Une sélection locale au projet peut donc remplacer la valeur globale personnelle. Si le sélecteur affiche un style inattendu, consultez /status pour voir quelles sources de paramètres ont été chargées, puis vérifiez les fichiers locaux et de projet qui ont priorité.

L’onglet Config affiche la sélection résolue, pas le fichier qui a fourni cette clé particulière.

Quand j’ai consigné cette configuration avec Claude Code 2.1.266, les pages de documentation se contredisaient sur le moment où un changement de style prenait effet.

Le 15 septembre 2026, la documentation Output Styles distinguait explicitement le changement de style sélectionné de la modification de son fichier : à partir de la version 2.1.251, un changement de sélection s’applique au message suivant ; le terminal lit les fichiers de style au démarrage, donc créer ou modifier un fichier nécessite de redémarrer le client.

La référence sur le prompt caching explique l’effet sur le cache d’un changement de préfixe du system prompt.

La règle opérationnelle est plus restreinte que ces deux énoncés généraux : consignez la version du client, changez de style avant le premier message si possible et démarrez une nouvelle session après avoir modifié son fichier lorsque vous avez besoin d’une preuve sans ambiguïté des octets chargés.

Un style sélectionné ne prouve pas le comportement

La capture d’écran établit que /config affichait flow-lean comme Output Style sélectionné. Cette preuve était moins forte qu’elle n’en avait l’air.

Les empreintes concordantes établissaient que le fichier attendu était arrivé dans le répertoire natif, mais des canaris en nouvelle session ignoraient toujours le style jusqu’à ce que la valeur configurée corresponde exactement au name qu’il déclarait.

Séparez les contrôles :

AffirmationPreuve
Présent~/.claude/output-styles/flow-lean.md existe
InstalléSon empreinte correspond à celle de la release immuable sélectionnée
SélectionnéLes paramètres résolus affichent outputStyle: Flow Lean, qui correspond au name déclaré par le style
ChargéUne trace client ou une capture instrumentée du prompt relie le system prompt de la session au style relu ; sinon UNKNOWN
EffectifUn prompt corrélé produit la forme de réponse requise sans perdre les preuves ni les protections nécessaires
Cinq lignes de preuve distinctes : présence du fichier, empreinte d’installation concordante, sélection du style résolue, trace de chargement corrélée et comportement dans un test identifié.
Des empreintes et paramètres concordants n’établissent pas les deux dernières affirmations. Sans trace corrélée, le chargement reste UNKNOWN ; le footer étaye uniquement le comportement observé dans son test. Voir l’image en taille réelle.

Un footer Skills used: flow-lean constitue une preuve utile du comportement produit par le modèle. Ce n’est pas une télémétrie native d’invocation.

Une transcription de session, un appel natif à un Skill ou une preuve instrumentée du chargeur peuvent établir l’invocation. Un canari de comportement établit uniquement ce qu’il a testé sur ce prompt et cette surface.

La même exécution isolée a aussi révélé la limite des subagents. Sa trace de flux signalait output_style: Flow Lean pour le parent, qui a produit le footer. Le texte renvoyé par un subagent nommé ne l’a pas produit.

Le subagent a refusé sa tâche délibérément synthétique pour un motif de sécurité sans rapport avec le test. Cette exécution étaye donc uniquement la séparation des périmètres. Elle ne prouve ni l’exécution réussie de la tâche ni le bon routage du skill dans le worker.

Pour Flow Lean, utilisez un prompt factuel avec une commande exacte, puis une recommandation et un prompt portant sur une action destructive.

Le premier vérifie la densité. Le deuxième vérifie que le verdict résiste à la compression. Le troisième vérifie que la compression se suspend.

Exécutez des cas équivalents pour tout subagent dont vous comptez décrire le comportement.

Gardez le skill complet à disposition

Le style compact ne devrait pas absorber tout le contrat d’évaluation de Flow Lean. Les modes, les règles de récapitulatif, les handles stables, la provenance des reviewers, les contrôles factuels et les modalités d’invocation propres à chaque hôte restent dans SKILL.md.

Cette séparation permet aussi de conserver d’autres styles de réponse sans désinstaller le skill.

Utilisez l’Output Style pour définir la forme par défaut de la conversation principale. Invoquez le skill lorsque la tâche exige toutes ses règles. Préchargez le skill dans les subagents qui doivent le suivre. Évaluez chaque surface avec des preuves adaptées à l’affirmation.

YSNK

(Vous devriez maintenant savoir)

  • Les Output Styles modifient le system prompt de la conversation principale, tandis que CLAUDE.md porte le contexte du projet
  • keep-coding-instructions: true conserve les consignes d’ingénierie logicielle intégrées à Claude Code
  • Le nom configuré d’un style doit correspondre au name explicite de son frontmatter, casse comprise
  • Un style compact peut porter des préférences par défaut tandis que le workflow Flow Lean complet reste un skill
  • Les subagents nommés n’héritent pas de l’Output Style de la conversation principale. Chaque surface a donc besoin de ses propres preuves de comportement