LVLZ a deux portes d’entrée. Vous pouvez écrire à votre agent, ou ouvrir l’espace de travail dans l’application web. Nous avons fixé une règle très tôt : tout ce que l’on peut faire d’un côté, on peut le faire de l’autre. Cet article explique comment nous tenons cette promesse sans compter sur la mémoire et les bonnes intentions.
Pourquoi la parité compte
Si l’appli peut archiver un projet mais pas l’agent, vous apprenez à ne pas le demander à l’agent. Si l’agent peut créer une routine mais que l’appli ne peut pas l’afficher, vous cessez de faire confiance à l’appli. Chaque écart vous apprend à contourner le produit. La parité, c’est ne jamais avoir à se demander quel côté peut faire quoi.
Une définition par fonctionnalité
Chaque opération, comme créer une tâche, envoyer un e-mail ou lancer une tâche de navigation, est définie une seule fois dans un registre partagé. Une définition contient :
- une clé stable, comme
task.create, - un schéma typé pour ses entrées,
- son mode de contrôle (si elle nécessite votre validation),
- les interfaces qui la proposent,
- un exemple de la façon dont vous la demanderiez avec vos propres mots.
À partir de cette définition unique, nous générons l’outil appelé par l’agent, l’endpoint HTTP appelé par l’appli et l’entrée d’un manifeste. Le même handler sert l’agent et l’appli : le comportement est identique par construction.
Une vérification qui fait échouer le build
Les définitions ne garantissent pas à elles seules la parité, car il faut encore implémenter chaque côté. Notre build exécute donc une vérification de parité. Si une fonctionnalité est marquée comme disponible mais qu’un côté n’a pas implémenté l’une de ses opérations, le build échoue. Si une opération est implémentée partout mais toujours marquée « bientôt », le build échoue aussi : le statut public ne peut pas prendre de retard sur la réalité.
Le site lit la même liste
Le manifeste alimente aussi ce site. La page des fonctionnalités et toutes les pages qui en dépendent listent chaque fonctionnalité avec son statut, Disponible, Bientôt ou Plus tard, et l’endroit où elle fonctionne : l’appli ou WhatsApp. Quand nous livrons quelque chose, la page se met à jour au déploiement suivant. Quand nous écrivons qu’une chose arrive, c’est parce que le registre le dit.
Ce que cela change pour vous
Vous apprenez LVLZ une seule fois. Tout ce que vous trouvez dans l’appli, vous pouvez le demander par message, et tout ce que fait l’agent, vous le retrouvez dans l’appli. Et quand vous lisez notre liste de fonctionnalités, vous lisez le code.