J'ai arrêté de rédiger des prompts pour Claude Fable 5 et je l'ai embauché à la place

@gippp69
ANGLAISil y a 2 jours · 13 juil. 2026
137K
116
3
30
150

TL;DR

Transformez vos interactions avec l'IA en traitant Claude Fable 5 comme un employé géré. Ce cadre utilise des changements multi-modèles et des garde-fous automatisés pour garantir un travail autonome de haute qualité et rentable.

On ne gère pas un employé en lui donnant des instructions une par une. On lui donne un contrat, une période d'essai et un moyen de mesurer s'il vaut encore son salaire. Fable 5 mérite le même traitement.

Voici le problème. Fable 5 peut fonctionner pendant des heures sans vous, créer ses propres sous-agents et terminer une semaine de travail en une nuit. Il coûte aussi de l'argent réel par token, il sur-livre dès que vous laissez le champ libre, et il défendra une mauvaise réponse mieux que la plupart des humains ne défendent une bonne.

Laissé sans gestion, c'est un moyen coûteux de produire des absurdités avec assurance. Mis sous contrat, c'est ce qui se rapproche le plus d'un employé à temps plein que vous pouvez faire tourner pour quelques dollars par jour.

Voici ce contrat. Pas la théorie. Les fichiers réels, dans l'ordre où vous les écrivez, construits autour d'un déploiement concret : les bots de surveillance que je fais déjà tourner sur un VPS à Paris via pm2. Les flux d'authentification et les tables de facturation ne sont pas ma surface d'attaque. Les clés RPC, les adresses de portefeuille et les transactions blockchain en direct le sont. Le système ci-dessous est conçu pour cela, pas pour un dépôt SaaS générique.

Cinq sections. Chacune livre un fichier. Temps total de configuration : moins de deux heures.

La configuration

bash
1CLI Claude (Claude Code) avec accès à Fable 5 # crédits d'utilisation, plafonné
2CLI llm + clé OpenRouter # pour les modèles bon marché
3jq, git, pm2, cron
4un VPS avec les bots déjà en cours d'exécution

Ce que vous obtenez au final :

text
1agent-contract/
2 CONTRACT.md # Section 1 : les conditions d'emploi
3 ops/
4 shift.sh # Section 3 : le shift quotidien
5 dispatcher.md # prompt de routage, Fable uniquement
6 intake.md # lecteur bon marché, lit les logs en premier
7 worker.md # modèle bon marché, effectue la frappe
8 reviewer.md # nouveau Fable, vérifie le travail
9 boundaries.md # Section 2 : ce qu'il peut et ne peut pas toucher
10 guardrails/signoff.sh # Section 2 : le oui/non déterministe
11 personnel/
12 trust.tsv # Section 4 : qui a gagné son autonomie
13 standing-checks/ # Section 4 : les choses qui doivent rester vraies
14 incidents/
15 log.tsv # Section 5 : ce qui a cassé et quand
16 runbook.md # Section 5 : quoi faire à ce sujet
17 Makefile

Une règle à citer avant de commencer, car elle donne le ton pour tout le reste :

Un agent qui note ses propres devoirs est un agent qui s'augmente tout seul.

Rien dans ce système ne vérifie son propre travail. Pas une seule fois.

Section 1 : Le contrat (CONTRACT.md)

Un contrat de travail n'est pas une liste de suggestions. Ce sont des chiffres, des limites strictes et des clauses qui sont appliquées, que l'employé soit d'accord ou non. Écrivez ce fichier de la même façon. Pas de « s'il vous plaît » ni d'« essayez de ». Un modèle optimise autour d'un langage vague comme un stagiaire optimise autour d'un manager qui ne vérifie jamais.

markdown
1# CONTRACT.md
2
3## ARRÊTS STRICTS (aucune exception, pas de demande itérée)
4- Ne touchez jamais aux clés de portefeuille, aux fichiers .env ou aux identifiants RPC sans approbation.
5- Ne poussez jamais une modification vers un processus bot en direct (pm2 restart) sans un signoff réussi.
6- Ne dépassez jamais 150 lignes modifiées dans un seul commit sans demander d'abord.
7- Ne prétendez jamais qu'une tâche est terminée en vous basant sur votre propre lecture du résultat.
8 Terminé signifie que le script de signoff a retourné 0. Rien d'autre ne compte.
9- N'inventez jamais de point d'API, d'adresse de contrat ou de valeur de configuration.
10 Si ce n'est pas dans le dépôt, arrêtez-vous et demandez.
11- N'ajoutez jamais une nouvelle dépendance. Écrivez-la dans ops/shift-log.md et arrêtez-vous là.
12- Ne modifiez ni ne supprimez jamais un test, un seuil d'alerte ou une condition de surveillance pour faire
13 passer quelque chose. Ce n'est pas un correctif. C'est une fraude.
14- Ne travaillez jamais à un effort supérieur à « élevé » à l'intérieur d'un shift. « xhigh » est réservé aux révisions
15 ponctuelles que vous déclenchez manuellement, jamais pour la boucle automatisée.
16- Ne racontez ni n'expliquez jamais votre raisonnement interne dans une réponse. Cela semble
17 utile. Sur Fable 5, cela peut déclencher un classificateur de refus à la place.
18
19## ROUTAGE DES TÂCHES (qui fait quoi, le moins cher capable gagne)
20| modèle | coût par tâche | ambition | jugement | goût |
21|-------------------|----------------|----------|----------|------|
22| claude-fable-5 | élevé | faible | 10 | 10 |
23| claude-opus-4-8 | moyen | moyen | 8 | 9 |
24| claude-sonnet-5 | faible | élevé | 7 | 7 |
25| worker OSS bon marché | le plus faible | le plus élevé | 5 | 4 |
26
271. Décider quoi faire ensuite, réviser un diff, départager une situation -> Fable 5,
28 lecture seule, effort élevé.
292. Lire des logs bruts, des vidages ou tout ce qui dépasse 50k tokens -> le worker bon marché.
30 Jamais Fable. C'est payer un directeur pour lire un tableur.
313. Tout ce avec quoi un utilisateur ou une chaîne interagit directement -> nécessite un score de goût
32 de 8 ou plus avant d'être livré.
334. Tout le reste -> sonnet-5, effort moyen, remonter d'un niveau en cas d'échec.
34
35## DÉFINITIONS
36- « jugement » = peut-il gérer la chose la plus difficile sur le bureau sans supervision
37- « terminé » = le script de signoff est sorti avec 0, point final
38- « petit » = moins de 50 lignes modifiées
39- « nettoyage » = le comportement est identique bit par bit, signoff vert avant et après
40
41## LA SEULE DÉFINITION DE « TERMINÉ » QUI COMPTE
42- Chaque tâche reçoit une ligne d'arrivée vérifiable par machine avant que le travail ne commence.
43- Un relecteur qui n'a vu ni le plan ni le brouillon le vérifie.
44- guardrails/signoff.sh a le dernier mot. Pas le relecteur. Le script.
45- Si le worker et le relecteur sont en désaccord deux fois de suite, ça va à un humain.
46 Pas de troisième avis, pas de modèle départiteur.

Adaptez avec vos propres chiffres. Tout ce que vous laisseriez passer 80% du temps en appelant ça « terminé » a besoin d'un chiffre ou d'un « jamais » attaché, ou supprimez-le.

Section 2 : Les limites et le signoff

Un contrat de travail ne signifie rien sans une vérification des antécédents sur ce qu'il est autorisé à toucher, et un manager qui signe avant que quoi que ce soit ne soit livré. Deux fichiers.

ops/boundaries.md :

markdown
1## travaille seul
2rédiger des correctifs sur une branche ; mettre à jour shift-log.md ; redémarrer une instance de test
3*non productive* ; signaler des flux de données obsolètes
4
5## a besoin de ma signature
6tout ce qui se trouve sous wallets/, .env*, config/rpc.json ; tout diff de plus de 300 lignes ;
7toute modification d'un processus pm2 en direct ; tout ce qui envoie une transaction
8
9## me réveille immédiatement
10le relecteur échoue deux fois le même correctif ; le routeur a servi un modèle différent
11de celui demandé ; les dépenses quotidiennes ont dépassé la ligne ; un contrôle permanent passe au rouge ;
12quoi que ce soit demande une clé privée

ops/guardrails/signoff.sh (modifiez les commandes pour correspondre à vos bots) :

bash
1#!/usr/bin/env bash
2set -e
3npm run typecheck --if-present
4npm test --if-present
5pm2 describe "$BOT_NAME" | grep -q "status.*online" || exit 1

Exécutez-le une fois manuellement avant que quoi que ce soit d'autre dans ce système ne soit mis en service. S'il ne passe pas proprement sur votre configuration actuelle, c'est la première tâche réelle. Tout le reste en aval suppose que ce script dit la vérité.

Section 3 : Le shift

Voici le calcul qui fait ou défait le système. Une session complète avec Fable 5 qui tape le travail coûte vite cher, quatre chiffres si vous le laissez écrire pendant des heures. Fable 5 qui prend les décisions pendant qu'un modèle bon marché tape le travail est une facture complètement différente, environ 15 à 20 % des tokens pour 100 % des décisions.

Donc le shift a quatre employés, pas un :

  1. Un modèle quasi gratuit lit les logs de la nuit et la sortie pm2. Il dit « calme » ou « actionnable ». C'est tout.
  2. Fable 5, en lecture seule, décide de la seule chose à plus haute valeur et rédige un ordre de travail. Il ne touche pas au code.
  3. Un modèle worker bon marché exécute l'ordre de travail sur une branche isolée.
  4. Une nouvelle instance de Fable 5, ne voyant que le cahier des charges et le diff, vote réussi ou échoué.

Le script déterministe de la section 2 départage. À chaque fois.

Gipp 🦅 - inline image

ops/shift.sh :

bash
1#!/usr/bin/env bash
2set -euo pipefail
3cd "$(dirname "$0")"
4DAILY_BUDGET="${DAILY_BUDGET_USD:-5}"
5INTAKE_MODEL="${INTAKE_MODEL:-openrouter/deepseek/deepseek-v4-flash}"
6WORKER_MODEL="${WORKER_MODEL:-openrouter/moonshotai/kimi-k2.6}"
7
8# 1. PRISE EN CHARGE, quelques centimes
9pm2 logs --lines 100 --nostream | llm -m "$INTAKE_MODEL" -s "$(cat intake.md)" \
10 >> shift-log.md
11grep -q "status: actionable" shift-log.md || { echo "shift calme"; exit 0; }
12
13# 2. ORDONNANCEMENT, Fable, xhigh, lecture seule, décide et s'arrête
14claude -p "$(cat dispatcher.md)
15LOG: $(cat shift-log.md)
16TRUST: $(cat personnel/trust.tsv)
17BOUNDARIES: $(cat boundaries.md)" \
18 --model claude-fable-5 --effort xhigh --allowedTools "Read" \
19 --output-format json > /tmp/order.json
20
21SERVED=$(jq -r '.modelUsage | keys[0] // "claude-fable-5"' /tmp/order.json)
22[[ "$SERVED" != *fable* ]] && { echo "redirigé, abandonner cette exécution" >> shift-log.md; exit 2; }
23
24jq -r '.result' /tmp/order.json > work-order.json
25ACTION=$(jq -r .action work-order.json)
26[[ "$ACTION" == "stop" ]] && exit 0
27[[ "$ACTION" == "queue" ]] && { echo "mis en file d'attente pour signature" >> shift-log.md; exit 0; }
28
29# 3. EXÉCUTION, worker bon marché, branche isolée
30BR="shift-$(date +%s)"
31git worktree add "../$BR" -b "$BR" >/dev/null
32( cd "../$BR" && llm -m "$WORKER_MODEL" -s "$(cat "$OLDPWD/worker.md")" \
33 "$(cat "$OLDPWD/work-order.json")" > shift-notes.md )
34
35# 4. RÉVISION, nouveau Fable, cahier des charges et diff uniquement, rien d'autre
36VERDICT=$(claude -p "$(cat reviewer.md)
37SPEC: $(jq -r .spec work-order.json)
38DIFF: $(cd "../$BR" && git diff)" \
39 --model claude-fable-5 --effort high --allowedTools "" \
40 --output-format json | jq -r .result)
41
42# 5. LE SEUL VOTE QUI LIVRE QUOI QUE CE SOIT
43if [[ "$VERDICT" == PASS* ]] && ( cd "../$BR" && "$OLDPWD/guardrails/signoff.sh" ); then
44 echo "RÉUSSI, livré ou mis en file selon le niveau de confiance" >> shift-log.md
45else
46 echo "ÉCHOUÉ : $BR mis en attente pour révision" >> shift-log.md
47fi

Une décision prise par Fable et une ligne de code tapée par Fable sont deux prix différents. Ne payez le plus élevé que pour la décision.

Section 4 : Le dossier personnel

La confiance n'est pas un paramètre à l'échelle de l'entreprise. Elle se gagne tâche par tâche, de la même manière que vous ne donneriez pas les clés de production à un nouveau venu dès le premier jour, quel que soit son portfolio.

personnel/trust.tsv suit chaque tâche récurrente par nom : exécutions, réussites, niveau actuel.

  • surveillance : moins de 10 exécutions, ou taux de réussite inférieur à 90 %. Brouillons uniquement, pas d'exception.
  • période d'essai : 10 à 19 exécutions à 90 % ou plus. Mis en file d'attente pour votre signature, à chaque fois.
  • approuvé : 20 exécutions ou plus à 95 % ou plus. Livré sans vous.
Gipp 🦅 - inline image

Un échec sur une tâche approuvée ne reçoit pas d'avertissement. Elle redescend directement en période d'essai et s'affiche sur stderr, que votre cron vous envoie par mail. La rétrogradation automatique est la seule qui tienne vraiment.

La seconde moitié du dossier personnel est personnel/standing-checks/. Chaque tâche terminée obtient son diplôme ici sous forme de commande qui doit continuer à retourner vrai, pour toujours, vérifiée une fois par jour :

markdown
1# personnel/standing-checks/bankr-claim-monitor.md
2prédicat : pm2 describe bankr-claim-monitor | grep -q "status.*online" && \
3 sqlite3 claims.db "select count(*) from claims where ts > strftime('%s','now','-1 day')" | grep -qv "^0$"
4dernière-vérification : 2026-07-08
5en-cas-de-violation : réveillez-moi, ne redémarrez pas à l'aveugle

Une tâche que vous n'avez vérifiée qu'une fois n'est pas terminée. C'est une hypothèse avec un horodatage.

Exécutez la vérification quotidiennement via cron. Un prédicat qui échoue signifie que quelque chose qui était vrai a cessé de l'être, silencieusement, et personne ne l'aurait remarqué sans ce fichier.

Section 5 : Le rapport d'incident

C'est la section que les playbooks originaux ignorent, et c'est celle qui compte vraiment une fois que le système est en production sur une infrastructure qui manipule de l'argent réel. Tout système agentique finit par faire quelque chose que vous ne vouliez pas. La question est de savoir si vous l'apprenez d'un log propre ou d'un portefeuille vidé.

ops/incidents/runbook.md :

markdown
1| signal | signification | action
2|---------------------------------|------------------------------------------|-------
3| exit 2 (redirigé) | un modèle différent a servi la requête | jetez la sortie, ne construisez jamais dessus, réessayez demain
4| stop_reason: refusal | le classificateur de sécurité a refusé, HTTP 200 | pas une erreur, vérifiez le log ; si une tâche refuse à plusieurs reprises, c'est qu'elle touche probablement quelque chose qu'elle ne devrait pas
5| le signoff échoue deux fois, même correctif | le worker et le relecteur ne convergent pas | passez-le en révision humaine, ne réessayez pas une troisième fois automatiquement
6| un contrôle permanent passe au rouge | quelque chose de terminé a cessé d'être vrai | vérifiez la date de dernière vérification, différenciez ce qui a été livré depuis, ne faites pas de revert automatique
7| les dépenses quotidiennes dépassent la ligne | budget dépassé | arrêtez le shift, lisez shift-log.md, trouvez quelle étape a gonflé
8| une tâche touche wallets/.env/rpc | tentative de violation des limites | arrêt strict, cela ne devrait jamais se produire si boundaries.md est respecté, traitez toute occurrence comme un bug dans le système lui-même

Enregistrez chacun de ces incidents dans incidents/log.tsv avec un horodatage, que vous ayez agi ou non. L'objectif n'est pas zéro incident. C'est zéro incident dont vous apprenez trop tard.

Une fois par semaine, faites un passage de compost : lisez le journal des incidents, les rétrogradations du fichier de confiance, et tout ce qui est resté en file d'attente et non signé pendant plus de 3 jours. Extrayez au maximum trois propositions : un nouvel arrêt strict pour CONTRACT.md, un correctif à une description de poste, ou un contrôle permanent qui vous manquait. Vous signez les trois à la main. Le système peut proposer sa propre règle suivante. Il n'a jamais le droit d'en écrire une.

Calendrier de probation

Trois points de contrôle, pas trente jours de surveillance :

Gipp 🦅 - inline image

Point de contrôle 1. Exécutez le shift manuellement chaque jour pendant une semaine. Lisez chaque ligne. Diplômé lorsque trois shifts de suite routent exactement comme vous l'auriez fait.

Point de contrôle 2. Cron prend le shift. Vous révisez la file d'attente avec un café au lieu de l'exécuter vous-même. Diplômé lorsque deux tâches récurrentes dépassent 20 exécutions enregistrées.

Point de contrôle 3. Votre tâche la plus performante est livrée sans surveillance. Diplômé lorsqu'elle fonctionne une semaine entière sans aucune intervention de votre part.

Les règles, condensées

  • Un contrat est un chiffre ou un « jamais ». Tout ce qui est plus flou sera optimisé.
  • L'ordonnanceur décide. Le worker tape. Aucun des deux ne vérifie son propre travail.
  • Le jugement de Fable vaut le prix. La frappe de Fable, généralement pas.
  • La confiance est par tâche, pas à l'échelle de l'entreprise, et la rétrogradation est automatique et bruyante.
  • Une tâche terminée qui n'est pas revérifiée n'est pas terminée, c'est une supposition avec une date.
  • Les limites se trouvent dans un fichier que vous pouvez lire en dix secondes, pas dans votre mémoire.
  • Le journal des incidents existe pour que vous trouviez les problèmes dans un rapport, pas dans un solde.
  • Ne construisez jamais sur la sortie d'un modèle que vous n'avez pas demandé.
  • Une fois par semaine, le système peut proposer une nouvelle règle. C'est toujours vous qui la signez.

Le modèle n'a jamais été la partie difficile. Construire quelque chose autour de lui qui reste honnête quand personne ne regarde, c'est le vrai travail. Voici à quoi ça ressemble pour une flotte de bots plutôt que pour une base de code.

Commencez par guardrails/signoff.sh. Exécutez un shift manuellement. Écrivez un contrôle permanent pour le dernier bot que vous avez livré. La première fois qu'il attrape quelque chose dont vous étiez sûr que c'était bon, le reste cesse d'être optionnel.

Suivez @GipArcAI pour plus d'analyses de ce type, et retrouvez-moi sur X à https://x.com/gippp69.

Enregistrer en un clic

Lire les articles viraux en profondeur avec l’IA de YouMind

Enregistrez la source, posez des questions ciblées, résumez l’argument et transformez un article viral en notes réutilisables dans un seul espace de travail IA.

Découvrir YouMind
Pour les créateurs

Transformez votre Markdown en un article 𝕏 impeccable

Quand vous publiez vos propres textes longs, la mise en forme 𝕏 des images, tableaux et blocs de code est pénible. YouMind transforme un brouillon Markdown complet en un article 𝕏 impeccable, prêt à publier.

Essayer Markdown vers 𝕏

D'autres patterns à décoder

Articles viraux récents

Explorer plus d'articles viraux