system-one-design
Transformez une étape question-puis-extraction en questions typées — une condition chacune, des noms d'options qui ne portent pas le verdict, un nombre en retour — et ne laissez jamais ce nombre arrêter le travail à lui seul.
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
- extraire un oui ou un non de la prose d'un modèle
- classer beaucoup d'éléments avec un modèle
- demander à un modèle de noter quelque chose
- la réponse d'un modèle décide de la suite
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
Une étape pose à un modèle une question dont la réponse est l'une de quelques valeurs connues — oui ou non, l'une de cinq étiquettes, un niveau de bas à haut — puis lit cette valeur dans la prose qu'il a écrite. Ou la même question est posée à des centaines d'éléments. C'est une décision typée déguisée en chat.
À faire
- Posez-la comme question typée (
chimera decide,POST /api/decideou l'outildecide) :noulpour oui/non,choicepour un élément d'un ensemble,scorepour des niveaux ordonnés. Une probabilité revient. - Une condition par question. « Est-ce une erreur et vient-elle de la base de données ? » fait deux questions ; posez les deux et combinez les réponses dans le code, où la règle est visible.
- Donnez aux options des noms qui ne portent pas le verdict (pas "yes", "safe", "pass") et mettez le sens
dans les critères. Une option fourre-tout ("other") est là où va une lecture incertaine — donnez-lui un critère
étroit ou retirez-la. Faites en sorte que les premiers mots des options diffèrent : un modèle local lit l'étiquette à partir de son premier token, donc
codingetcoding_agentne peuvent jamais être distingués (24 des 231 items publics de JevBench sont restés illisibles ainsi). Sur l'option fourre-tout, mesuré sur 1 000 sujets de commit : un « other » large a absorbé 78 % des items qui relevaient d'une option nommée, et un étroit 58 % ; le supprimer a porté le F1 des classes nommées de 0,24 à 0,43, au prix que les items réellement hors de l'ensemble tombent sur une option nommée. - Montrez au modèle la chose jugée, seule : pas la sortie d'outil autour, pas une phrase qui plaide pour une réponse.
- Choisissez tout seuil à partir d'exemples étiquetés, jamais d'une supposition, et gardez le nombre à côté de la décision qu'il a nourrie.
- Gardez l'arithmétique, les dates et les décomptes dans le code : calculez le fait, placez-le dans l'état et posez la question à son sujet. Un modèle de décision lit ; il ne calcule pas (au niveau difficile de JevBench, le modèle local n'a eu juste qu'un item de dates et de nombres sur 15).
À éviter
Laisser le nombre terminer, sauter ou approuver un travail. Une décision peut ajouter de l'examen — une revue, un avertissement, une seconde vérification — et rien d'autre : la seule décision de ce projet qui pouvait dire « arrête ici » a dégradé chaque modèle qu'elle dirigeait, et d'autant plus que le modèle était bon.
Évitez aussi de lire la réponse après un raisonnement (le nombre s'effondre à 0 ou 1), de découper un jugement en atomes qui décrivent ce que les deux classes partagent (un atome « détruit des données ? » a signalé des nettoyages légitimes autant que des attaques) et de prendre une probabilité brute pour calibrée. Gardez l'état sobre : une ligne pour chaque fait qui ne s'est pas déclenché (une colonne de « none ») a déplacé le nombre sur chaque item, et le même contenu répété se lit comme un motif qui n'existe pas.
Vérifier
- Le linter accepte chaque question (une question refusée n'atteint jamais un modèle).
- Chaque question répond dans les deux sens sur vos éléments ; une qui dit toujours la même chose lit le format, pas le texte.
- Pour un état long avec un modèle local, le prompt tient dans la fenêtre de contexte — une troncature silencieuse passe pour un résultat du modèle.
- Quelque part, un échantillon étiqueté montre que le nombre sépare les cas qui comptent — et il couvre toutes les façons dont la décision se trompe, des deux côtés ; un échantillon d'un seul type d'échec ne calibre que ce type.
- Avant de lire un changement de formulation comme un effet, reposez la question inchangée et voyez de combien le nombre bouge tout seul.
Risque
Une réponse typée paraît plus sûre que de la prose, et ne l'est pas : un petit modèle peut bien classer et pourtant se tromper avec assurance au milieu de son échelle. Traitez un nombre non calibré comme un indice, enregistrez-le et calibrez sur vos propres étiquettes avant qu'un seuil ne veuille dire quelque chose.
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/system-one-design/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.
347bfae9f826835f3351a60983b826f9b59fe5a7a9c1b87bf1a7bc3415ece699