Après avoir vu Iron Man, je rêvais depuis l'enfance de créer un assistant IA : avec Voice Commander, j'ai réglé la commande vocale sous Windows 98 pour qu'il déplace la souris et lance des programmes, mais cela faisait de l'effet plus que cela ne servait. Même la reconnaissance vocale était alors un énorme problème, et tenir une conversation n'était pas attendu avant cent ans.
2024 est arrivé.
J'ai mûri comme programmeur, appris des stacks et des frameworks, et créé mes propres modèles pour monter n'importe quel projet vite. C'est ainsi que je me suis approché lentement des startups, tout en faisant le travail habituel pour des clients.
J'ai écrit une tonne de code avec ChatGPT et j'ai compris qu'il pouvait écrire sur mes modèles. Il suffisait de lui dire comment tout est construit.
Il peut travailler avec ma base. Il faut seulement demander avec doigté et lui donner les accès.
Il y a beaucoup de routine, et GPT semblait le moyen idéal d'en finir enfin avec elle.
Première version. C'est le cœur de l'application : elle prend un texte, analyse la tâche, demande à GPT ce qu'il faut compléter et l'écrit. En pratique, c'est le Copilot qu'on ajoute maintenant à beaucoup d'IDE.

Une fois les premiers résultats codés, c'est devenu clair : je n'ai pas des fichiers de code, j'ai des projets. J'ai ajouté la prise en charge des projets.
Un projet n'est pas un seul dossier. J'ai fait un scanner de dossiers et un détecteur du type de chose qui s'y trouve. À ce stade, Jarvis a eu sa propre base de projets. Pour les dossiers inconnus, il demandait de quel projet il s'agissait et ce qu'il faisait, et il glissait cela dans le pré-prompt lorsqu'il fallait coder quelque chose, en en sachant davantage sur le projet.
Gestion de la base. Je voulais depuis longtemps qu'il la pilote lui-même à partir de ma demande, et je l'ai fait, en ajoutant une vérification de la justesse du code. Il peut créer non pas un seul champ, mais toutes les tables à partir de zéro, et les remplir s'il le faut.
En même temps, je lui ai appris à me poser des questions et à se sentir chez lui sur l'ordinateur : il connaît les processus lancés, les fenêtres, les fichiers et ce que je fais en ce moment, pour que je n'aie pas à lui expliquer où faire quoi.
Pour coder plus confortablement, j'ai demandé à Jarvis de m'écrire un plugin VS Code qui récupérerait l'information en finesse et la lui rendrait pour l'analyser. Et ainsi, sans rien savoir de l'écriture de plugins, je l'ai fait.
Jarvis l'a fait pour lui-même.
Et désormais, en plus de l'interface de saisie, j'avais une intégration étroite avec l'IDE.
Il extrayait les fichiers de VS Code, détectait tout seul le projet lancé, sortait la structure des tables et faisait le déploiement local.

MAIS. Il arrive qu'on ne voie pas clairement ce qu'il a réécrit. Je lui ai ajouté Git pour voir le nouveau et pouvoir revenir en arrière vite. Désormais Jarvis créait une branche à part pour sa modification et commitait lui-même celles qui réussissaient.
Il était temps de me rapprocher de mes modèles et de créer ce qu'il fallait en quelques secondes.
D'abord, l'installation des nouveaux projets : j'ai repris tous mes scripts d'installation et je les ai réécrits en C# avec l'aide de Jarvis.
J'ai ajouté la prise en charge de Vue 3 + TypeScript, Yii2, Bash, et ainsi de suite, mais l'essentiel est mon régénérateur automatique de modèles à partir des tables.
Maintenant Jarvis peut non seulement créer la base, il règle aussi les modèles lui-même. Une énorme routine m'est tombée des épaules. Il resterait à lui faire tenir les migrations.
Travail
Jarvis est déjà passé par plusieurs de mes projets, et il reste de moins en moins d'endroits qu'il n'a pas touchés et où il n'a pas laissé sa branche git, tant c'est pratique.
Et ensuite ?
On verra.
