Le fichier CLAUDE.md règle le comportement de fond. Ces prompts-ci se tapent en session, au bon moment, pour fermer chaque angle mort à la main quand l'enjeu le justifie. Un par faille, plus un d'ouverture et un d'audit.
Si tu n'en gardes qu'un : pose-le au début d'une tâche sérieuse. Il regroupe les six garde-fous en une fois.
Pose les règles avant la première ligne de code. L'agent les confirme, puis exécute.
Avant de commencer, applique ces règles pour toute cette tâche :
1. Les tests sont la spec, pas un score. Ne modifie, n'affaiblis, n'ignore, ne contourne et ne supprime aucun test pour avoir du vert. Si tu ne peux pas réussir honnêtement, arrête-toi et explique pourquoi.
2. Qualifie chaque décision de RÉVERSIBLE ou IRRÉVERSIBLE. Réversible et peu coûteuse → choisis une valeur par défaut, note-la en une ligne, continue. Irréversible (schéma, API publique, perte de données, déploiement, nouvelle dépendance) → arrête-toi et demande-moi d'abord.
3. Relis chaque fichier depuis le disque avant de le modifier. N'agis pas sur ta mémoire de celui-ci.
4. Simple mais pas fragile : gère les modes d'échec réalistes ; ignore seulement ce qui est réellement impossible.
5. Présente les hypothèses et compromis sous forme de puces d'une ligne, pas en prose. Pas de pavés de texte.
6. Juge le succès sur le fait que mon intention réelle est satisfaite, pas sur la taille du diff ou un check vert.
Accuse réception en une ligne, puis continue.
Before we start, operate under these rules for this whole task:
1. Tests are the spec, not a score. Never edit, weaken, skip,
mock-around or delete a test to get green. If you can't pass
honestly, stop and explain why.
2. Label each decision REVERSIBLE or IRREVERSIBLE. Reversible &
cheap -> pick a default, log it in one line, continue.
Irreversible (schema, public API, data loss, deploy, new
dependency) -> stop and ask me first.
3. Re-read any file from disk before editing it. Don't act on
your memory of it.
4. Simple but not fragile: handle realistic failure modes; skip
only the genuinely impossible.
5. Surface assumptions and tradeoffs as one-line bullets, not
prose. No walls of text.
6. Judge success by whether my actual intent is met, not by diff
size or a green check.
Acknowledge in one line, then proceed.
À dégainer quand une faille précise devient le risque dominant de la tâche en cours.
Contre le reward hacking : l'agent qui modifie ou mocke le test au lieu de réparer le code.
Les tests sont la spécification, pas un score à battre. Tu ne peux pas modifier, affaiblir, ignorer, contourner ou supprimer aucun test ou assertion pour avoir du vert. Si un test ne passe pas avec du code de production honnête, arrête-toi et dis-moi exactement pourquoi. Une fois fini, montre-moi un diff SÉPARÉ de tous les changements aux fichiers de test et justifie chacun.
The tests are the specification, not a score to beat. You may not
edit, weaken, skip, mock-around, or delete any test or assertion
to get green. If a test won't pass with honest production code,
stop and tell me exactly why. When done, show me a SEPARATE diff
of all changes to test files and justify each one.
Garde l'autonomie sur le trivial, force l'arrêt sur l'irréversible.
Pour chaque décision dans cette tâche, qualifie-la de RÉVERSIBLE ou IRRÉVERSIBLE. Réversible et peu coûteuse → choisis une valeur par défaut sensée, note-la en une ligne, et continue. Irréversible ou coûteuse (schéma DB, API publique, suppression de données, déploiement, ajout d'une dépendance) → arrête-toi et demande-moi avant d'agir. Ne m'interromps pas pour des détails réversibles, mais ne devine jamais en silence sur les décisions coûteuses.
For every decision in this task, label it REVERSIBLE or
IRREVERSIBLE. Reversible & cheap -> choose a sensible default,
log it in one line, and keep going. Irreversible or costly (DB
schema, public API, deleting data, deploy, adding a dependency)
-> stop and ask me before acting. Don't interrupt me for
reversible trivia, but never guess silently on the costly ones.
Contre l'hypothèse périmée en fin de longue session ou après compaction.
Avant de modifier un fichier, relis son contenu actuel depuis le disque et indique en une ligne ce qui s'y trouve réellement. N'agis pas sur ta mémoire de celui-ci plus tôt dans cette session. Si la réalité diffère de ce que tu attendais, signale-le avant de changer quoi que ce soit.
Before you edit any file, re-read its current contents from disk
and state in one line what's actually there. Do not act on your
memory of it from earlier in this session. If reality differs
from what you expected, flag it before changing anything.
Commandes irréversibles, secrets, dépendances : confirmation obligatoire.
Les actions suivantes nécessitent mon "oui" explicite avant que tu ne les exécutes : suppression de fichiers/répertoires (rm), force-push, git reset --hard, migrations ou changements de schéma DB, déploiements, et ajout de toute nouvelle dépendance. Affiche la commande exacte et attends ma confirmation. Ne commets jamais de secrets ou de clés API. Privilégie la bibliothèque standard plutôt qu'un nouveau package.
The following require my explicit "yes" before you run them:
deleting files/dirs (rm), force-push, git reset --hard, DB
migrations or schema changes, deploys, and adding any new
dependency. Print the exact command and wait for my confirmation.
Never commit secrets or API keys. Prefer the standard library
over a new package.
« Simple » ne doit pas devenir « fragile » : forcer l'inventaire des cas d'échec réels.
Garde le code minimal, mais simple n'est pas synonyme de fragile. Avant de dire que c'est fini, liste les modes d'échec réalistes pour ce code (entrée vide/nulle, données malformées, panne réseau, concurrence) et dis-moi lesquels tu as gérés et lesquels tu as délibérément laissés de côté, et pourquoi.
Keep the code minimal, but simple is not the same as fragile.
Before you call it done, list the realistic failure modes for
this code (empty/null input, malformed data, network failure,
concurrency) and tell me which you handled and which you
deliberately left out, and why.
Surfacer les compromis sans noyer l'humain sous un pavé.
Quand tu signales des hypothèses, compromis ou questions ouvertes, présente-les sous forme de liste courte et scannable — une ligne chacune, maximum. Commence par la réponse ou l'action ; mets les mises en garde après. Garde tout préambule à une seule phrase. Pas de pavés de texte.
When you flag assumptions, tradeoffs, or open questions, give
them as a short scannable list — one line each, maximum. Lead
with the answer or the action; put caveats after. Keep any
preamble to a single sentence. No walls of text.
Contre Goodhart : un petit diff vert qui rate l'objectif reste un échec.
Ne te juge pas sur la taille du diff ou un test vert. Avant de déclarer que c'est fini, reformule l'objectif original avec tes propres mots et confirme, point par point, que chaque partie est réellement satisfaite. Un petit diff propre qui rate l'intention est un échec, pas un succès.
Don't judge yourself by diff size or a green test run. Before
declaring this done, restate the original goal in your own words
and confirm, point by point, that each part is actually
satisfied. A small, clean diff that misses the intent is a
failure, not a success.
À lancer avant de valider. Force l'agent à se retourner contre son propre travail, honnêtement.
Réveille d'un coup les angles morts 01, 02, 05 et 07.
Avant de clore ceci, audite ton propre travail et réponds à chaque point honnêtement — pas de rassurance, juste des faits :
- Un fichier de test ou une assertion a-t-il changé ? Justifie chaque changement.
- Quelles décisions as-tu prises en mon nom ? Liste spécifiquement les irréversibles.
- Quels modes d'échec réalistes restent non gérés ?
- Le diff final correspond-il à mon intention originale, ou passe-t-il juste les checks ?
- Qu'est-ce qui te fait le moins confiance et que je devrais revoir moi-même ?
Before we close this out, audit your own work and answer each
point honestly — no reassurance, just facts:
- Did any test file or assertion change? Justify each change.
- Which decisions did you make on my behalf? List the
irreversible ones specifically.
- What realistic failure modes are still unhandled?
- Does the final diff match my original intent, or just pass the
checks?
- What are you least sure about that I should review myself?
Comment les utiliser ensemble. Le CLAUDE.md révisé règle le comportement par défaut ; ces prompts sont le rappel ponctuel quand l'enjeu monte. En pratique : 00 à l'ouverture d'une tâche sérieuse, 03 ou 06 glissés en cours de route si l'agent dérive, 08 systématiquement avant de valider.
Les prompts ciblés 01–07 ne servent qu'au cas par cas : si tu touches à un schéma de BDD, sors le 04 ; si tu vois l'agent s'acharner sur des tests, sors le 01. Inutile de tout empiler — le surplus de consignes dilue l'attention du modèle autant qu'il l'oriente.
Même réserve que pour l'artefact précédent : ces formulations s'appuient sur des tendances comportementales observables, pas sur une spec interne d'Opus 4.8. Valide-les sur ton propre harnais et coupe ce qui ne sert pas.