Aller au contenu

Skills

declare-when-a-setting-takes-effect

Un réglage qui s'enregistre correctement et ne change rien jusqu'au redémarrage est pire qu'un réglage qui échoue. Dites quand il s'applique, et déduisez-le de l'endroit où il est lu.

PatronProvenance: cleanStatut: activev0.1.0 · Apache-2.0

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

  • ajouter un écran de réglages
  • la config est mise en cache
  • pourquoi mon changement ne s'applique pas
  • redémarrage requis

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 exposez un paramètre dans une interface utilisateur, et le code qui le consomme lit la valeur à un moment autre qu'à chaque utilisation : au démarrage du processus, à la construction d'une session, ou dans un objet mis en cache.

Cela ne s'applique pas à un paramètre lu à chaque utilisation. Ceux-là s'appliquent immédiatement et ne doivent rien dire — une remarque sur un délai qui n'existe pas enseigne la même méfiance qu'une remarque absente.

À faire

  1. Pour chaque paramètre, trouvez la ligne qui le lit. Le moment où il s'applique est une propriété de cette ligne, pas du contrôle lui-même.
  2. Préférez le rendre lu en direct. Une propriété qui se résout à l'accès ne coûte généralement rien et supprime le problème au lieu de le décrire.
  3. Là où c'est vraiment impossible — quelque chose démarre au boot — étiquetez-le, et générez l'étiquette depuis le serveur ou le même module qui connaît le point de lecture, pour que l'étiquette ne puisse pas dériver.
  4. Regroupez les étiquettes en classes signifiantes : s'applique maintenant, s'applique à votre prochaine conversation, s'applique après un redémarrage.

À éviter

Un écran de paramètres qui confirme un enregistrement et ne fait discrètement rien. C'est pire qu'une erreur : une erreur pousse l'utilisateur à chercher une cause, alors qu'un succès le pousse à blâmer la fonctionnalité, le modèle, ou lui-même.

Évitez de figer en dur la liste des paramètres qui « nécessitent un redémarrage » dans l'interface. Cette liste est une copie d'une connaissance qui vit ailleurs, et elle devient obsolète dès que le point de lecture se déplace — silencieusement, ce qui est exactement comment le problème d'origine a été créé.

Évitez une remarque générale du type « certains paramètres nécessitent un redémarrage ». C'est vrai, inutile, et cela couvre aussi ceux qui n'en ont pas besoin.

Vérifier

Modifiez le paramètre, utilisez la fonctionnalité, et observez le comportement — pas l'écran. Relisez une valeur depuis le système en cours d'exécution, pas depuis le formulaire que vous venez de soumettre.

La version mécanique : vérifiez qu'aucun paramètre n'est étiqueté comme immédiat, et que chaque paramètre que l'interface expose apparaît dans la classification que le serveur publie.

Risque

Les étiquettes ajoutent du bruit à un écran de paramètres, et un écran où chaque ligne porte un badge est un écran où les badges ne veulent plus rien dire. Seuls les paramètres différés en ont besoin.

Le risque plus profond est de traiter l'étiquette comme la solution. Déclarer qu'un contrôle est inerte jusqu'au redémarrage est honnête ; le rendre vivant est mieux, et l'étiquette ne doit pas devenir un moyen confortable d'éviter le changement plus difficile.

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.git
chimera skills-import chimera-agent/skills/declare-when-a-setting-takes-effect/SKILL.md

Inté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.

2f1c9fd86ac24a61af75b11945b5042d1a2b53ef081cd9a87c3031d5fa97fcf3

Lire la fiche dans le dépôt