Aller au contenu
Tous les articles

Par Gustavo Paixão

Bâtir un marketplace où les gens décident de la façon dont l'IA travaille

Comment Ronne AI Marketplace est passé de skills d'IA copiés à la main d'un projet à l'autre à deux versions en code ouvert au cours de sa première semaine, avec des éléments qui circulent entre le registre et Claude Code, Codex et Cursor.

Partager

L'idée

Chaque fois que je commençais un nouveau projet, j'y copiais à la main mes skills, mes commandes et mes agents d'IA, puis je les adaptais. Chaque projet finissait avec une version légèrement différente de la même chose, et les garder synchronisés à la main ne fonctionnait pas.

Les outils de programmation avec IA ne valent que ce qu'on leur donne : skills, agents, règles, hooks et connexions à d'autres outils. Je voulais donc un seul endroit qui rassemble ces pièces et décide de ce qui y entre. C'est devenu Ronne AI Marketplace. Il est en code ouvert, et ceux qui l'utilisent l'installent sur leurs propres serveurs. N'importe qui peut proposer un élément, et rien n'atteint les outils d'IA avant d'avoir été revu.

La phrase à laquelle je revenais sans cesse était simple : ce sont les gens qui devraient contrôler la façon dont leur IA travaille, et non l'inverse.

Pourquoi « Ronne »

Quand j'ai commencé à préparer le projet, il me fallait un nom. Je voulais un prénom, parce que le produit pourrait jouer le rôle d'un assistant d'IA. J'ai passé quelques heures à faire des allers-retours avec ChatGPT, Claude et Gemini : des prénoms masculins et féminins, dans différentes langues. Chaque prénom qui me plaisait était déjà pris, souvent par un autre produit d'IA, ou n'avait plus de nom de domaine libre à enregistrer.

Juste avant d'aller me coucher, deux prénoms me sont venus à l'esprit : Rainier et Ronne, deux de mes oncles. Rainier est décédé en 2009. Ronne est le plus jeune frère de ma mère, et il vit dans l'arrière-pays du Pernambouc, au Brésil. J'ai interrogé ChatGPT sur les deux, et il m'a orienté vers Ronne : c'est facile à prononcer en anglais, en portugais et en français.

Ça a réglé la question. Ce nom compte pour moi, et c'est ma façon de célébrer Ronne, Rainier et ma famille.

Le logo de Ronne AI

Donner forme au produit

Un format, de nombreux outils. Claude Code, Codex et Cursor gardent chacun ces éléments dans des fichiers différents. Chaque élément est donc écrit une seule fois, et un outil en ligne de commande, rmk, écrit les bons fichiers selon les spécifications actuelles de chaque harness.

Revue avant publication. Chaque nouvel élément, et chaque changement apporté à un élément existant, doit être approuvé par une personne autre que l'auteur. La publication est une étape distincte, et une version publiée ne change jamais.

Une règle pour son propre code. Tout ce dont le marketplace dépend doit être libre de redistribution, à sa dernière version stable, et exempt de vulnérabilités connues. La compilation vérifie la règle à chaque changement, et elle a déjà écarté deux bibliothèques.

Puis j'ai posé une question qui a élargi le plan : pourquoi seulement trois outils? Les outils de programmation avec IA convergent vers les mêmes formats, et ils changent vite. Chaque outil est donc devenu un petit module qui traduit les éléments dans ses propres fichiers.

Comment je le bâtis

Je bâtis le marketplace avec un agent de programmation IA. Il écrit une bonne partie du code, mais les décisions restent les miennes.

Tôt dans le projet, l'agent a commencé à supposer qu'il pouvait pousser des changements de lui-même. Ce n'est pas comme ça que je veux travailler, alors j'ai fixé des règles pour lui, de la même façon que le marketplace permet aux gens de décider de ce que leurs outils d'IA peuvent faire. Avant tout commit, il exécute le lint, la vérification des types, les tests et la compilation. Si quelque chose échoue, il me dit ce qui ne va pas et propose quoi faire, et c'est moi qui décide. Il ne pousse jamais de code et n'ouvre jamais de pull request sans que je le demande.

Plus tard, je l'ai laissé bâtir des fonctionnalités entières seul, une tâche et un commit à la fois. Ensuite, je revois la pull request, j'essaie le résultat et je décide si la fonctionnalité est intégrée ou non.

D'une installation à un catalogue

Le premier code a rendu le marketplace installable en une seule commande, avec SQLite, MySQL, MariaDB ou PostgreSQL. Chaque changement est testé sur les quatre bases de données, parce que chacune se comporte un peu différemment. Pour vérifier que ça en valait la peine, j'ai volontairement brisé la recherche. Trois des bases de données ont quand même réussi les tests. Seul PostgreSQL a détecté le problème.

Puis sont venus les éléments et la revue. Un test qui soumettait deux brouillons du même nom au même moment a révélé que MySQL les laissait passer tous les deux, et j'ai corrigé le problème avant qu'il puisse toucher qui que ce soit. La personne qui revoit une soumission voit ce que l'élément peut faire sur la machine d'un développeur, comme exécuter une commande ou accéder au Web.

En l'utilisant comme le ferait un nouvel utilisateur, j'ai d'abord demandé « qu'est-ce qu'une portée? ». J'ai donc ajouté de courtes réponses dans l'application, là où les gens ont tendance à bloquer.

Le catalogue, avec chaque élément publié et sa commande d'installation.

Jusque dans les outils

Puis est venue la raison d'être du marketplace : faire entrer les éléments dans les outils. rmk garde la trace de chaque fichier qu'il écrit, pour pouvoir mettre à jour ou supprimer exactement cela, et il ne touche jamais à un fichier que quelqu'un a créé à la main.

Avant d'écrire la partie de chaque outil, j'ai relu sa documentation. Trois choses avaient changé dans Claude Code depuis ma première lecture. Et il s'est avéré que Cursor lit les skills de Claude Code et exécute ses hooks, si bien qu'une installation pour les deux aurait exécuté chaque hook deux fois. Désormais, Cursor les laisse à Claude Code.

Le serveur MCP permet aux gens d'installer des éléments sans quitter la conversation avec leur outil d'IA. Il planifie d'abord et écrit ensuite : l'assistant montre chaque fichier qu'une installation modifierait et ce que chaque élément peut faire, et alors seulement il applique exactement ce plan. Pour que le terminal et les outils d'IA ne divergent pas, les deux utilisent le même code d'installation, ce qui a changé l'architecture que j'avais prévue.

La page d'un élément : l'utilisation, les outils où il fonctionne, ce que la revue a trouvé et comment l'installer. Les décomptes d'utilisation sont simulés.

Deux versions en une semaine

Le 29 septembre, j'ai publié la version 0.1.0 : rmk et le serveur MCP sur npm, et l'application web sous forme d'image Docker. Cette version a mis au jour un bug à l'étape de publication, et la 0.1.1 a suivi le jour même.

Jusque-là, les éléments allaient seulement du registre vers les outils d'IA. Mais la plupart des skills et des agents naissent dans l'outil, pendant que quelqu'un travaille. J'ai donc fait en sorte qu'ils circulent dans les deux sens : les gens peuvent renvoyer au marketplace ce qu'ils écrivent dans Claude Code, Codex ou Cursor, sous forme de brouillon ou de proposition de changement, en passant par la même revue que tout le reste. Cela voulait dire mettre d'autres outils d'IA en attente, pour d'abord tester et valider le marketplace avec les outils dont je me sers le plus. La version 0.2.0 est sortie le 1er octobre, avec l'exportation et un compositeur visuel pour bâtir des agents et des lots sur un canevas.

La suite

Pour l'instant, j'en suis le premier utilisateur, et c'est voulu : je l'utilise dans mes propres projets pour voir quelles fonctionnalités tiennent la route et lesquelles ne la tiennent pas. Bientôt, une équipe l'utilisera pour un seul produit, ce qui est le cas pour lequel il a été conçu : de nombreuses personnes qui partagent un même ensemble d'éléments sélectionnés avec soin. Ce que j'apprendrai des deux déterminera ce qui changera avant que j'ajoute les autres outils.

Code ouvert

Ronne AI Marketplace est en code ouvert, sous licence MIT, et le dépôt est public depuis le premier jour. ronne.ai explique ce qu'il fait et comment le faire tourner. Le code est sur GitHub, l'application web sur Docker Hub et rmk sur npm.

Les contributions sont les bienvenues. Le travail est organisé en fonctionnalités, chacune avec sa spécification et son plan dans le dépôt, et chaque pull request exécute les mêmes vérifications que moi, y compris celles de licence et de sécurité. Deux bons points de départ :

  • Un autre outil d'IA. Copilot, Gemini, Antigravity et Devin sont en attente, et chaque outil est un petit module. Si vous utilisez l'un d'eux tous les jours, vous connaissez ses fichiers mieux que moi.
  • Tickets. Si quelque chose ne s'installe pas, si une étape n'est pas claire ou si un élément se comporte autrement dans votre outil, ouvrez un ticket.

Si vous l'essayez, ou si vous gérez vos outils d'IA autrement, j'aimerais en entendre parler.

Partager

Envie d'en discuter?

Si cet article a soulevé des questions ou des idées, je serai ravi d'échanger.