chimera-give-the-denominator
Un taux sans son dénominateur ni sa composition induit en erreur alors que chaque chiffre reste vrai — donnez n, et dites quelle part du numérateur est du bruit déjà connu.
Conférée par la personne qui a relu la fiche, et non revendiquée par le fichier lui-même. Une fiche que l'agent distille au cours d'une exécution ayant consommé du contenu non fiable naît contaminée et reste en attente de relecture avant d'être un jour récupérée.
Quand elle vient à l'esprit
- annoncer un taux d'échec
- un pourcentage dans un résumé
- le chiffre paraît alarmant
- comparer avant et après un changement
- écrire un résultat de benchmark
C'est dans À éviter et Vérifier que se trouve d'ordinaire la valeur. À faire est la section que tout le monde écrit.
Le corps de la fiche ci-dessus est une traduction. L'original anglais est ce que la CLI importe, ce que l'agent lit à l'exécution et ce que l'empreinte ci-dessous atteste.
Déclencheur
Vous vous apprêtez à mettre un taux, un pourcentage ou un décompte dans un rapport, un message de commit, un tableau de benchmark, ou un message à quelqu'un qui va agir dessus. « 34 % des exécutions ont échoué. » « Erreurs multipliées par 3. » « La couverture a baissé. »
Cela ne s'applique pas à un chiffre que le lecteur peut déjà décomposer : une latence unique mesurée, un numéro de version, un nombre de fichiers dans un diff qu'il a sous les yeux. Le risque est spécifique à un agrégat — une quantité calculée en divisant un ensemble que vous avez choisi par un autre ensemble que vous avez choisi, où les deux choix sont invisibles dans la phrase.
À faire
- Écrivez toujours les décomptes bruts à côté du taux :
34% (17/50 runs). Si vous ne pouvez pas énoncer le dénominateur, vous ne savez pas encore ce que vous avez mesuré. - Dites de quel dénominateur il s'agit. Les exécutions tentées et les exécutions terminées sont des ensembles différents, et diviser par les terminées supprime silencieusement les plantages — précisément la population qui vous a fait regarder.
- Ventilez le numérateur par cause avant de le publier. Sur ces 17 échecs, combien relèvent d'un
ticket déjà ouvert, d'un timeout instable connu chez le fournisseur, d'une fixture qui échoue sur cette machine ?
Rapportez la ventilation :
17 failed — 14 are the known connect timeout, 3 unexplained. - Lancez la même mesure sur une référence inchangée et soustrayez. Le chiffre qui compte
est la part qui ne survit pas sur
main. - Quand n est assez petit pour qu'un échantillon de plus déplace le chiffre affiché de plusieurs points, mettez cette phrase-là dans le rapport à la place du pourcentage.
À éviter
"failure rate 34%" — vrai, et cela invite le lecteur à passer une journée sur un timeout qu'il a déjà
signalé la semaine dernière. Écrivez "17/50 failed; 14 are the ollama connect timeout (issue open), 3 are new"
et la journée sera passée sur les 3.
Évitez le dénominateur du biais du survivant. rate = failures / completed est le classique : les exécutions
mortes avant d'avoir produit une ligne sont absentes des deux côtés, si bien que la métrique s'améliore à mesure que le système
se dégrade.
Évitez les pourcentages sur un dénominateur inférieur à une vingtaine sans n attaché. 50% → 67% est une vraie
amélioration, ou c'est une exécution sur trois qui bascule, et les deux sont indiscernables sur la page.
Chimera a publié une rétractation exactement de cette forme, et c'est la raison d'être de cette carte.
bench/learning_lift/RESULTS.md rapportait un écart de transfert intra-famille significatif de +6,7 %, et
l'exécution 7 — la même mesure à une puissance statistique suffisante — ne l'a pas confirmé. Le chiffre était réel, l'arithmétique
était juste, et l'explication la plus probable restait une fluctuation d'échantillon. Ce qui a rendu la
rétractation possible, c'est que le nombre d'exécutions avait été publié à côté du pourcentage dès le départ.
Si la page n'avait porté que « +6,7 % », il n'y aurait rien eu à réexaminer, et le résultat
serait discrètement devenu un fait.
Vérifier
Donnez la phrase à quelqu'un qui ne voit pas vos données et demandez-lui de reconstituer les décomptes bruts. S'il n'y arrive pas, la phrase est incomplète — c'est un test binaire et il prend dix secondes.
Deuxième vérification, quand le chiffre pilote une décision : relancez la mesure sur une référence non modifiée. Toute fraction du numérateur qui s'y reproduit ne concerne pas votre changement, et toute affirmation bâtie dessus porte sur le harness.
Risque
Appliqué à tout, cela transforme une prose lisible en marécage de parenthèses, et les lecteurs se mettent à sauter les parenthèses — ce qui est pire que le problème d'origine, car les dénominateurs sont désormais sur la page et personne ne les lit. Réservez la décomposition complète aux chiffres sur lesquels quelqu'un va agir.
Le risque le plus aigu va dans l'autre sens : la ventilation par cause est aussi l'outil qui fait paraître petit un vrai problème. Étiqueter quatorze échecs comme « bruit connu » n'est honnête que si l'étiquette a été attribuée avant que vous ne voyiez dans quel sens elle arrangeait les choses. Si vous vous surprenez à élargir la catégorie « connu » pendant la rédaction du résumé, le chiffre était la conclusion, pas la preuve.
Un dénominateur énoncé ne rachète pas non plus un mauvais dénominateur. 2/3 (n=3), ce sont toujours trois exécutions ; le
dénominateur rend la faiblesse visible, il ne la corrige pas.
L'utiliser
La fiche est une donnée. Clonez le dépôt et importez-la par son chemin — ce qui arrive par le réseau est traité comme contaminé et retenu pour approbation, ce qui est le comportement souhaitable et la raison pour laquelle il n'y a pas d'installateur en une ligne ici.
git clone https://github.com/brcampidelli/chimera-agent.gitchimera skills-import chimera-agent/skills/chimera-give-the-denominator/SKILL.mdIntégrité
SHA-256 du fichier tel qu'il est publié. Qui l'importe peut vérifier que ce qu'il a reçu correspond à ce que cette page affichait.
a95d8e10515e848efd16e1566d93454164e85d57a7dcb8aa35e7a2e593790766