Fleet Ladder — l'échelle de la flotte
Effort: light — une sonde en direct, mise en cache, du barreau avant tout dispatch. Élimine : les dispatches vers des providers morts, et les noms de modèles codés en dur aux points d'appel, qui cassent le jour où le modèle part à la retraite.
Ne bricole jamais un appel fournisseur à la main, et ne code jamais un nom de modèle en
dur sur un site d'appel. Un seul résolveur possède la question « quel modèle fait ce
travail, là, maintenant ? » — et il répond depuis la vérité vivante, pas depuis
l'opinion d'un fichier de config.
Quand la dérouler
- Avant TOUT envoi de travail à un modèle : build, notation, revue, ou job de worker
borné.
- Quand un fournisseur est à terre et que tu dois savoir ce qui se replie sur quoi.
- À l'instant où tu te surprends à taper un nom de modèle dans du code ou un template
de prompt.
Les étapes
- Déclare le rôle, pas le modèle. Chaque job demande un rôle —
builder,
grader ou worker. L'échelle associe les rôles à des candidats ordonnés.
builder : implémente et répare.
grader : la revue indépendante — structurellement jamais le même modèle que
celui qui a construit.
worker : des jobs bornés et bien spécifiés. Les barreaux moins chers suffisent
ici.
- Lis l'échelle depuis la config. Un fichier liste, par rôle, les candidats en
ordre de repli explicite : le plus fort d'abord, jusqu'à ta queue de survie locale
(ce que tu peux faire tourner sur ton propre matériel quand tous les fournisseurs
cloud sont éteints). Pour changer ou ajouter un modèle, édite ce fichier — jamais
le code. Forme de départ : ladder.example.yaml — copie-le,
remplace les valeurs d'exemple.
- Sonde le vif avant de croire. Une entrée de config est une affirmation, pas la
vérité. Une liste périmée cite des modèles morts ; elle omet aussi des modèles
vivants. Sonde le fournisseur avant d'envoyer vers un barreau — un appel à
l'endpoint des modèles ou une requête à un token, par ex. :
curl -s "$PROVIDER_BASE_URL/v1/models" -H "Authorization: Bearer $API_KEY"
(ou la même forme sur l'endpoint de chat avec "max_tokens": 1).
Mets le résultat de la sonde en cache pour une fenêtre raisonnable — ne martèle pas
les fournisseurs en re-sondant à chaque appel. Ne rafraîchis le cache que quand il
te faut vraiment de la vérité fraîche.
- Descends, à voix haute. Envoie au meilleur barreau DISPONIBLE. Sur une panne de
transport, signale l'échec fort, puis tente le barreau suivant. Ne saute jamais en
silence — le registre doit montrer quels barreaux ont échoué et pourquoi.
- L'épuisement échoue fort. Si tous les barreaux sont à terre, lève une erreur
claire qui nomme ce qui a été tenté. Un job impossible à envoyer ne réussit jamais
en silence, n'attend jamais pour toujours, et ne se dégrade jamais en réponse
inventée.
- Journalise la provenance. Ajoute chaque envoi à un journal : rôle, modèle
choisi, barreaux sautés et pourquoi. Plus tard, tu dois pouvoir répondre à « qui a
réellement fait ce travail ? »
Règles dures — une seule cassée et le skill a échoué
- Aucun nom de modèle sur un site d'appel. Le code demande un rôle ; l'échelle
répond un modèle. Greppe ta base de code pour les littéraux de noms de modèles —
chacun est un bug.
- La sonde vivante bat la config. Si l'humain dit qu'un modèle existe et que la
config n'est pas d'accord, sonde-le. Vérifié-et-ça-répond, c'est réglé ; une liste
périmée, non.
- Builder et grader ne se résolvent jamais sur le même modèle pour le même
changement. Si l'échelle devait les écraser sur un seul modèle, le grader prend le
barreau indépendant suivant — ou le job échoue fort.
- Sondage borné. Les sondes sont bon marché, en cache, et respectent le backoff.
Une boucle de retry serrée contre un fournisseur mort est interdite.
- Pas de repli silencieux. Chaque marche descendue est visible dans le journal et
dans le rapport. Se dégrader en douce, c'est comme ça qu'une route cassée meurt sans
que personne ne le remarque.
Marche bien avec
- model-fusion — le panel et le juge résolvent leurs modèles par cette échelle.
- blind-tribunal — les jurés viennent de familles différentes ; l'échelle en choisit des vivants.
- bounded-loops — la cadence de sonde, le backoff et les kill-switchs.
1---2name: fleet-ladder-43description: À utiliser avant de confier n'importe quel travail à un modèle — build, notation, ou job de worker borné — ou quand un fournisseur est en panne et qu'il te faut l'ordre de repli. Résout l'échelle de modèles LIVE : sonde ce qui répond vraiment, choisit le meilleur disponible selon un ordre de repli explicite, échoue bruyamment quand l'échelle est épuisée. Trigger words: fleet, ladder, dispatch, fallback, model down, provider down, which model, availability, échelle de modèles, repli, modèle en panne, fournisseur à terre, quel modèle, disponibilité.4license: MIT5---67# Fleet Ladder — l'échelle de la flotte8**Effort:** light — une sonde en direct, mise en cache, du barreau avant tout dispatch. Élimine : les dispatches vers des providers morts, et les noms de modèles codés en dur aux points d'appel, qui cassent le jour où le modèle part à la retraite.910Ne bricole jamais un appel fournisseur à la main, et ne code jamais un nom de modèle en11dur sur un site d'appel. Un seul résolveur possède la question « quel modèle fait ce12travail, là, maintenant ? » — et il répond depuis la vérité vivante, pas depuis13l'opinion d'un fichier de config.1415## Quand la dérouler1617- Avant TOUT envoi de travail à un modèle : build, notation, revue, ou job de worker18 borné.19- Quand un fournisseur est à terre et que tu dois savoir ce qui se replie sur quoi.20- À l'instant où tu te surprends à taper un nom de modèle dans du code ou un template21 de prompt.2223## Les étapes24251. **Déclare le rôle, pas le modèle.** Chaque job demande un rôle — `builder`,26 `grader` ou `worker`. L'échelle associe les rôles à des candidats ordonnés.27 - `builder` : implémente et répare.28 - `grader` : la revue indépendante — structurellement jamais le même modèle que29 celui qui a construit.30 - `worker` : des jobs bornés et bien spécifiés. Les barreaux moins chers suffisent31 ici.322. **Lis l'échelle depuis la config.** Un fichier liste, par rôle, les candidats en33 ordre de repli explicite : le plus fort d'abord, jusqu'à ta queue de survie locale34 (ce que tu peux faire tourner sur ton propre matériel quand tous les fournisseurs35 cloud sont éteints). Pour changer ou ajouter un modèle, édite ce fichier — jamais36 le code. Forme de départ : [ladder.example.yaml](ladder.example.yaml) — copie-le,37 remplace les valeurs d'exemple.383. **Sonde le vif avant de croire.** Une entrée de config est une affirmation, pas la39 vérité. Une liste périmée cite des modèles morts ; elle omet aussi des modèles40 vivants. Sonde le fournisseur avant d'envoyer vers un barreau — un appel à41 l'endpoint des modèles ou une requête à un token, par ex. :42 `curl -s "$PROVIDER_BASE_URL/v1/models" -H "Authorization: Bearer $API_KEY"`43 (ou la même forme sur l'endpoint de chat avec `"max_tokens": 1`).44 Mets le résultat de la sonde en cache pour une fenêtre raisonnable — ne martèle pas45 les fournisseurs en re-sondant à chaque appel. Ne rafraîchis le cache que quand il46 te faut vraiment de la vérité fraîche.474. **Descends, à voix haute.** Envoie au meilleur barreau DISPONIBLE. Sur une panne de48 transport, signale l'échec fort, puis tente le barreau suivant. Ne saute jamais en49 silence — le registre doit montrer quels barreaux ont échoué et pourquoi.505. **L'épuisement échoue fort.** Si tous les barreaux sont à terre, lève une erreur51 claire qui nomme ce qui a été tenté. Un job impossible à envoyer ne réussit jamais52 en silence, n'attend jamais pour toujours, et ne se dégrade jamais en réponse53 inventée.546. **Journalise la provenance.** Ajoute chaque envoi à un journal : rôle, modèle55 choisi, barreaux sautés et pourquoi. Plus tard, tu dois pouvoir répondre à « qui a56 réellement fait ce travail ? »5758## Règles dures — une seule cassée et le skill a échoué5960- **Aucun nom de modèle sur un site d'appel.** Le code demande un rôle ; l'échelle61 répond un modèle. Greppe ta base de code pour les littéraux de noms de modèles —62 chacun est un bug.63- **La sonde vivante bat la config.** Si l'humain dit qu'un modèle existe et que la64 config n'est pas d'accord, sonde-le. Vérifié-et-ça-répond, c'est réglé ; une liste65 périmée, non.66- **Builder et grader ne se résolvent jamais sur le même modèle** pour le même67 changement. Si l'échelle devait les écraser sur un seul modèle, le grader prend le68 barreau indépendant suivant — ou le job échoue fort.69- **Sondage borné.** Les sondes sont bon marché, en cache, et respectent le backoff.70 Une boucle de retry serrée contre un fournisseur mort est interdite.71- **Pas de repli silencieux.** Chaque marche descendue est visible dans le journal et72 dans le rapport. Se dégrader en douce, c'est comme ça qu'une route cassée meurt sans73 que personne ne le remarque.7475## Marche bien avec7677- [model-fusion](../model-fusion/SKILL.md) — le panel et le juge résolvent leurs modèles par cette échelle.78- [blind-tribunal](../blind-tribunal/SKILL.md) — les jurés viennent de familles différentes ; l'échelle en choisit des vivants.79- [bounded-loops](../bounded-loops/SKILL.md) — la cadence de sonde, le backoff et les kill-switchs.